[백준 1384번] 메시지
[백준 1384번] 메시지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class 백준_손수경_정답_1384 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int groupNum = 1; while (true) { int n = Integer.valueOf(br.readLine()); String[] arr = new String[n]; String[][] name = new String[n][n]; int index = n - 1; if (n == 0) { break; } for (int i = 0; i < n; i++) { arr[i] = br.readLine(); } for (int i = 0; i < n; i++) { name[i][0] = arr[i].split(" ")[0]; for (int j = 1; j < n; j++) { name[i][j] = arr[index].split(" ")[0]; index--; if (index < 0) { index = n - 1; } } } System.out.printf("Group %d\n", groupNum); boolean isAllP = true; groupNum++; for (int i = 0; i < n; i++) { for (int j = 1; j < n; j++) { if (arr[i].split(" ")[j].equals("N")) { System.out.printf("%s was nasty about %s\n", name[i][j], name[i][0]); isAllP = false; } } } if (isAllP == true) { System.out.println("Nobody was nasty"); } System.out.println(); } } } | cs |
풀이 과정
둥글게 앉아서 종이를 돌렸다는 점이 처음에 접근하기 어려웠다. 그래서 A라는 사람이 종이를 돌렸을 때, 적는 순서대로 name
이라는 배열에 넣었다. 그래서 만약에 입력된 이름 순서가 A -> B -> C -> D -> E라면 name
에는
A E D C B
B A E D C
C B A E D
D C B A E
E D C B A
로 들어가 있을 것이다. 여기서 둥글게 앉았기 때문에 이에 대한 인덱스 설정이 어려웠는데 1씩 줄여나가다가 인덱스 값이 음수가 되면 n - 1 로 설정하여서 name
배열에 넣었다. 그리고 입력된 P / N가 name
배열 1~4인덱스와 비교를 하면 된다. 그리고 isAllP
변수를 통해서 모두 P를 적었을 경우 출력해야 되는 값을 출력해준다.
댓글남기기