본문 바로가기
PS/AtCoder

[ABC251] C - Poem Online Judge (AtCoder Beginner Contest 251 in Java)

by Nahwasa 2022. 5. 15.

문제 : abc251_c

 

  만약 공통된 String 부분이 없다고 생각해보자. 그럼 단순히 입력 중 최대 T값이 인덱스를 출력해주면 될 것이다. 다만 이 문제에서는 S를 기준으로 중복된 값이 들어왔다면 해당 값은 무시해줘야 한다. 동일한 String이 들어왔는지 확인하는 가장 간단한 자료구조는 HashSet을 사용하는 것이다. 따라서 HashSet으로 이미 들어온 값이라면 무시하고, 그렇지 않다면 HashSet에 등록하고 최대값인지 체크하면 된다. 

 

코드 : github

...
private void solution() throws Exception {
    int n = nextInt();
    HashSet<String> hs = new HashSet<>();
    int max = 0;
    int maxIdx = 0;
    for (int i = 1; i <= n; i++) {
        StringTokenizer st = new StringTokenizer(nextLine());
        String s = st.nextToken();
        int v = Integer.parseInt(st.nextToken());
        if (hs.contains(s)) continue;
        if (v > max) {
            max = v;
            maxIdx = i;
        }
        hs.add(s);
    }
    System.out.println(maxIdx);
}
...

댓글