๋ฐ์ํ
๋ฌธ์
https://www.acmicpc.net/problem/1158
์ฝ๋(JAVA)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
Queue<Integer> queue = new ArrayDeque<>();
for(int i =1 ; i <= n ; i++) {
queue.offer(i);
}
int cnt = 1;
int idx = 0;
int[] josephus = new int[n];
while(!queue.isEmpty()) {
if(cnt++%k == 0) {
josephus[idx++] = queue.poll();
}
else {
queue.offer(queue.poll());
}
}
System.out.println(Arrays.toString(josephus).replace("[", "<").replace("]", ">"));
}
}
ํ์ด
์ํ๋ชจ์์ผ๋ก ์์ ์๋ค๋ ๊ฒ๋๋ฌธ์ ์ฒ์์๋ LinkedList๋ฅผ ์๊ฐํ์ผ๋, ์ด๋ฒ๋ฌธ์ ๋ Queue๋ก ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ !
์ฐ์ ํ์ 1~n๊น์ง์ ๊ฐ์ ๋ฃ์ด์ค๋ค.
๊ทธ ํ, ํ๊ฐ ๋น ๋๊น์ง(์ฌ๋์ด ๋จ์ง ์์ ๋ ๊น์ง) while๋ฌธ์ ๋๋ฆฌ๋ฉฐ
cnt%3 == 0 ์ด๋ฉด poll๋ก ํ์์ ๊ฐ์ ๋นผ๊ณ ๋ฐ๋ก josephus๋ฐฐ์ด์ ๋ฃ๋๋ค.
๊ทธ๋ ์ง ์๋ค๋ฉด, pollํ ๊ฐ์ ๋ค์ offerํ์ฌ ์ํ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด ์ค๋ค.
์ถ๋ ฅ์ Arrays์ toString ์ถ๋ ฅ์์ [] ๋ชจ์๋ง ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ฏ๋ก ๊ทธ๋ฅ System.out.println์ผ๋ก ๋ฐ๋ก ์ถ๋ ฅ ํด์ฃผ์๋ค.
๋ฐ์ํ
'๐ ์๊ณ ๋ฆฌ์ฆ > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] 735. Asteroid Collision (ํด์, Java ํ์ด) (0) | 2023.07.21 |
---|---|
[LeetCode] 445. add Two Numbers 2 (ํด์, Java ํ์ด) (0) | 2023.07.17 |
[SWEA] 1223๋ฒ ๊ณ์ฐ๊ธฐ2 (Java) (0) | 2021.08.20 |
[๋ฐฑ์ค]1918๋ฒ ํ์ํ๊ธฐ์ (0) | 2021.08.09 |
[๋ฐฑ์ค]1874๋ฒ ์คํ์์ด (0) | 2021.08.09 |