백준 1158 - 요세푸스 문제

백준 1158 - 요세푸스 문제

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


풀이

처음에는 vector를 사용하여 문제를 해결하려고 했으나, 배열에서 숫자를 제거해야

하기 때문에, 배열말고 다른 자료구조를 사용해야겠다고 생각했다.

여러가지 풀이가 있겠지만, Listqueue를 사용해서 풀 수 있었다.

  1. List 풀이

    리스트에서 어떻게 k 번째 사람을 특정할 것인지를 생각해야 한다.

    i 라는 변수를 하나 두어, k로 나누어떨어질 때마다 출력해주었다.

  2. Queue 풀이

    k번째 수가 앞으로 올 때까지, 그 전의 수들을 뒤로 보내주면 된다.

    k번째 수가 앞으로 오면, 출력하고 지워주는 방식으로 해결한다.


코드

Categories:

Updated:

Leave a comment