-
완전탐색 - 백준[2840] 행운의 바퀴자료구조와 알고리즘/문제풀기 2024. 4. 16. 13:38
import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main (String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); char[] ans = new char[N]; Arrays.fill(ans, '?'); int curIndex = 0; while (K-- > 0) { int backStep = sc.nextInt(); char backAlphabet = sc.next().charAt(0); int nextIndex = ((curIndex - backStep) % N + N) % N; if (ans[nextIndex] == '?') ans[nextIndex] = backAlphabet; else if (ans[nextIndex] != backAlphabet) { System.out.println("!"); return ; } curIndex = nextIndex; } boolean[] chk = new boolean[26]; for (int i = 0; i < N; i++) { if (ans[i] == '?') continue; if (chk[ans[i] - 'A']) { System.out.println("!"); return ; } chk[ans[i] - 'A'] = true; } for (int i = 0; i < N; i++) System.out.print(ans[(curIndex + i) % N]); System.out.println(); } }
- 얻은것
>배열 환형으로 순회할 때 :
반대 방향 : ((curIndex - step) % N + N ) % N -> 자바 %연산 -나오는 것 있으니, +N 해준다음에 다시 %N
정방향 : (curIndex + step) % N
'자료구조와 알고리즘 > 문제풀기' 카테고리의 다른 글
재귀 - 백준 15655 N과 M (6) - 중복 없는 오름차순 조합 (1) 2024.04.28 재귀 - 백준(15654) N과 M(5) - 중복없는 오름차순 순열 (0) 2024.04.16 완전탐색 - 백준(10250) ACM 호텔 (0) 2024.04.16 완전탐색 - 백준 (10448) 유레카 문제 (0) 2024.04.16 연결리스트 (0) 2024.01.15