Coding Test

CT | 백준 1475번 방 번호

이진유진 2024. 10. 21. 18:00
반응형

 

https://www.acmicpc.net/problem/1475

import java.util.*;

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int num = scanner.nextInt();

        scanner.close();

        List<Integer> digits = new ArrayList<>();
        String numberStr = String.valueOf(num);

        for (char c : numberStr.toCharArray()) {
            digits.add(Character.getNumericValue(c)); // 각 문자를 숫자로 변환해 리스트에 추가
        }

        HashMap<Integer, Integer> map = new HashMap<>();

        for (int i = 0; i < digits.size(); i++) {
            int digit = digits.get(i);


            if (digit == 6 || digit == 9) {
                map.put(6, map.getOrDefault(6, 0) + 1); 
            } else {
                map.put(digit, map.getOrDefault(digit, 0) + 1);
            }
        }

        if (map.containsKey(6)) {
            map.put(6, (map.get(6) + 1) / 2);  // 6과 9는 한 세트로 처리
        }

        int maxValue = 0;

        for (int val : map.values()) {
            if (val > maxValue) {
                maxValue = val;
            }
        }
        System.out.println(maxValue);
    }
}

 

* map.getORDefault(key, defaultValue)

 - Key : 찾으려는 key / defaultValue : Key가 Map에 없을 경우 반환할 기본값. 

 

배열의 기본문제 중 두번째 문제를 풀어봤습니다 :) 
제가 생각한 부분은 리스트에 넣고 
각 값을 hashMap을 통해 키로 넣어서 value를 통해 조정하여 해를 찾는 느낌으로 풀었습니다 :) 
반응형