알고리즘

[백준, 자바, 1380번] 귀걸이

hminor 2024. 2. 13. 11:27

풀이

  • 2*n-1 줄로 주어지는 입력 값 중
  • 첫 번째 입력값인 인덱스를 통해 cnt 배열에서 -1 하여
  • 마지막 for문에서 cnt의 값이 1인 인덱스를 name에서 찾아
  • tc 와 함께 출력하여 해결

 

import java.io.*;
import java.util.*;

public class 귀걸이 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int tc = 1;
        while (true) {
            int n = Integer.parseInt(br.readLine());
            if (n == 0) break;
            ArrayList<String> name = new ArrayList<>(n);
            ArrayList<Integer> cnt = new ArrayList<>(Collections.nCopies(n,2));

            for (int i = 0; i < n; i++) name.add(br.readLine());
            for (int i = 0; i < 2*n-1; i++) {
                StringTokenizer st = new StringTokenizer(br.readLine());
                int num = Integer.parseInt(st.nextToken());
                String x = st.nextToken();

                cnt.set(num-1,cnt.get(num-1)-1);
            }
            for (int i = 0; i < n; i++) {
                if (cnt.get(i) == 1) {
                    System.out.print(tc);
                    System.out.println(" " + name.get(i));
                    break;
                }
            }
            tc ++;
        }
    }
}