https://www.acmicpc.net/problem/1158

 

1158번: 조세퍼스 문제

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)

www.acmicpc.net

이번 문제는 1158번 조세퍼스 문제입니다.

이 문제는 큐를 사용하면 쉽게 풀어낼 수 있는 문제입니다.

 

1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다.

 

입력이 7 3 <--이렇게 들어왔다고 가정해보면

 

1 ~ 7까지를 모두 큐에 PUSH합니다. 그다음에 3번째 숫자만 삭제 해 나갑니다.

 

위 그림과 같이 2번을 POP해주고 뒤에 PUSH해서 넣어주면 3번째 숫자가 queue의 front에 오게 됩니다.

 

그렇다면 queue의 front를 출력해주고 pop해주면 한개가 삭제되는것입니다.

 

이런 과정을 queue가 empty가 될때까지 반복하면서 POP되는 숫자들을 출력해주면 됩니다.

 

아래는 전체 소스코드입니다!

 

 

'Programming > Baekjoon' 카테고리의 다른 글

BOJ ) 11053번 가장 긴 증가하는 부분 수열  (0) 2019.10.07
BOJ ) 10866번 덱  (0) 2019.06.25
BOJ ) 10845_큐  (0) 2019.05.30
BOJ ) 1406 에디터  (0) 2019.05.25
BOJ ) 9012번 괄호  (0) 2019.05.23

+ Recent posts