본문 바로가기
코딩테스트/TIL

[99클럽] 6일차 문제: 할리갈리

by moon101 2025. 1. 20.

 

 

 

백준 할리갈리 문제를 풀었다. 

 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = Integer.parseInt(sc.nextLine());
        
        Map<String, Integer> hm = new HashMap<>();
        
        // 문자열 입력 받기
        for (int i = 0; i < n; i++) {
            String s = sc.nextLine();
            String[] sArr = s.split(" ");
            hm.put(sArr[0], hm.getOrDefault(sArr[0], 0) + Integer.parseInt(sArr[1]));
        }
        String answer = "NO";
        for(Map.Entry<String, Integer> e : hm.entrySet()) {
            if(e.getValue().equals(5)) {
                answer = "YES";
                break;
            }
        }

        // 결과 출력
        System.out.println(answer);
    }
}

 

 

아직 비기너 문제라서 시간복잡도까지는 고려안해도 거의 다 풀 수 있는 것 같다. 문자열 입력 받는 코드가 늘어서 그렇지 hashmap에 getOrDefault() 메소드를 사용 할 수 있으면 쉽게 풀 수 있는 문제였다. 

 

 

해시맵 반복문 작성하는 부분이 아직 잘 안외워져서 계속 검색해보는데

Map.Entry<키 타입, 값 타입> 변수명 : 해시맵변수명.entrySet() 으로 작성해야 한다. 

댓글