-
[Java] BOJ 12873 기념품개발자 취업/코딩테스트 준비 2023. 6. 4. 11:00반응형
12873번: 기념품
백준이는 BOJ 알고리즘 캠프 참가자 중 한 명에게 기념품을 주려고 한다. 하지만, 많은 참가자 중에서 어떤 사람을 뽑아서 기념품을 줘야하는지 고민이 되기 시작했다. 따라서, 백준이는 게임을
www.acmicpc.net
정답 코드
- queue를 활용하여 해당 숫자를 외치는 사람을 queue에서 제외
- 5000^3이 int범위 초과하는 것을 생각해야함
- 나머지 연산으로 시간 복잡도 줄이기
import java.io.*; import java.util.*; public class Main { static BufferedReader br; static StringTokenizer st; static int N; static Queue<Integer> queue; public static void main(String[] args) throws IOException { br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); queue = new LinkedList<>(); for (int i = 1; i <= N; i++) { queue.add(i); } int index = 1; while (queue.size() != 1) { long pow = (long) (Math.pow(index, 3) - 1); long mod = pow % queue.size(); if (mod < 0) { mod += queue.size(); } for (int i = 0; i < mod; i++) { queue.add(queue.poll()); } queue.poll(); index++; } System.out.println(queue.peek()); } }
'개발자 취업 > 코딩테스트 준비' 카테고리의 다른 글
[Java] BOJ 16948 데스 나이트 (0) 2023.06.06 [Java] BOJ 16937 두 스티커 (0) 2023.06.06 [Java] BOJ 1342 행운의 문자열 (0) 2023.06.03 [Java] BOJ 1326 폴짝폴짝 (0) 2023.06.02 [Java] BOJ 21966 중략 (0) 2023.06.01