알고리즘

[백준, 자바, 11728번] 스피카

hminor 2024. 10. 14. 11:43
반응형

풀이

  • 해당 문제는 가장 밝은 별을 뭐 어떻게 찾으라는 거야라고
  • 계속해서 찾아봤는데
  • 조건데 맞는 별을 찾는 문제였다는 걸 알게 되었음...
  • 3개의 연결된 별을 찾고 (여기까진 생각했는데, 여러 개어서 아닌줄....)
  • 해당 별에 연결된 별이 사진에 나온 것 처럼
  • 1개, 2개, 3개 이렇게 연결되어 있을 경우에 해당 기준 별이
  • 스피카라는 말... 
  • 그래서 아래와 같이 코드를 작성하여 해결.

 

import java.io.*;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class _21316 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        List<List<Integer>> mtx = IntStream.rangeClosed(0,13).mapToObj(ArrayList<Integer>::new).collect(Collectors.toList());
        int[] li = new int[13];
        int result = 0;

        for (int i=0; i<12; i++) {
            st = new StringTokenizer(br.readLine());
            int x = Integer.parseInt(st.nextToken());
            int y = Integer.parseInt(st.nextToken());
            li[x]++;
            li[y]++;
            mtx.get(x).add(y);
            mtx.get(y).add(x);
        }

        for (int i=0; i<13; i++) {
            if (li[i]==3 && (li[mtx.get(i).get(0)]+li[mtx.get(i).get(1)]+li[mtx.get(i).get(2)]) == 6) {
                result = i;
                break;
            }
        }
        System.out.println(result);
    }
}