[백준] 1475번 방번호 문제 풀이

7293 단어 백준구현구현

❓ 문제

다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

🖨️ 입력

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.

🖨️ 출력

첫째 줄에 필요한 세트의 개수를 출력한다.

예제 입력

9999

예제 출력

2

💡 풀이

import java.util.Scanner;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String n = s.next();

        int[] arr = new int[9]; // 0, 1, 2, 3, 4, 5, 6, 7, 8

        n = n.replace('9', '6'); // 9를 6으로 변경

        // 배열을 돌면서 해당 숫자 인덱스의 arr 값 1씩 더해주기
        for(int i = 0; i < n.length(); i++) {
            arr[n.charAt(i) - '0']++;
        }

        // 짝수인 경우 2로 나눈 몫, 홀수인 경우 2로 나눈 몫 + 1
        if(arr[6] % 2 == 0) arr[6] = (arr[6] / 2);
        else arr[6] = (arr[6] / 2) + 1;

        Arrays.sort(arr); // 배열을 오름차순 정렬
        System.out.println(arr[8]);

        s.close();
    }
}

✏️ comment

  • 문자열 치환
    • str.replace([기존문자],[바꿀문자])
    • str.replaceAll([정규식],[바꿀문자])
  • 배열 정렬
    • 오름차순: Arrays.sort(arr)
    • 내림차순: Arrays.sort(arr, Collections.reverseOrder())
  • 문자 -> 정수형: str.charAt(i) - '0'

좋은 웹페이지 즐겨찾기