본문 바로가기
PS/AtCoder

[ABC252] B - Takahashi's Failure (AtCoder Beginner Contest 252 in Java)

by Nahwasa 2022. 5. 22.

문제 : abc252_b

 

  N개의 입력값 중 가장 큰 수를 제외한 데이터는 의미가 없다. 결국, N개의 입력값 중 가장 큰 수의 인덱스들이 K개의 입력값 중에 포함된다면 Yes, 아니라면 No를 출력해주면 되는 문제이다.

 

  따라서 내 경우엔 N개를 입력받으면서 max 값을 찾는다. 이 때 새로운 max값이 나타난다면 HashSet을 초기화하고, max값과 동일한값이 나타날 시 HashSet에 추가하는 식으로 진행했다. 이후 K개를 입력받으면서 HashSet에 있는지만 판단해줬다.

 

코드 : github

...
private void solution() throws Exception {
    int n = nextInt();
    int k = nextInt();
    HashSet<Integer> hs = new HashSet<>();
    int max = 0;
    for (int i = 1; i <= n; i++) {
        int cur = nextInt();
        if (cur == max) hs.add(i);
        else if (cur > max) {
            hs = new HashSet<>();
            hs.add(i);
            max = cur;
        }
    }
    while (k-->0) {
        if (hs.contains(nextInt())) {
            System.out.println("Yes");
            return;
        }
    }
    System.out.println("No");
}
...

댓글