[Java][백준] #1475 - 방 번호

배수연·2024년 5월 12일

algorithm

목록 보기
28/45

🔗 백준 1475 - 방 번호

문제

알고리즘 분류

  • 구현

풀이

1. 입력

  • index = 플라스틱 숫자로 두고, 필요한 숫자의 갯수가 늘면 해당 인덱스의 배열값을 1 증가
  • 6과 9는 뒤집어 사용할 수 있으므로, 9가 나올 경우 6에 저장하고 추후 나눈다.
        String room_num = br.readLine();
        int[] nums = new int[9];
        for (int i = 0; i < room_num.length(); i++) {
            int num = room_num.charAt(i) - '0';
            if (num == 9) nums[6]++;
            else nums[num]++;
        }

2. 최댓값 출력

  • 6의 경우 1번에서 9도 함께 저장했으므로, 2로 나누어준다.
    - num[6]/2 + num[6]%2로 계산하여 홀수일 경우 올림 처리
  • 배열을 오름차순으로 정렬하여 마지막 요소(최댓값) 출력
        nums[6] = nums[6]/2 + nums[6]%2;
        Arrays.sort(nums);
        System.out.println(nums[8]);

전체 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String room_num = br.readLine();
        int[] nums = new int[9];
        for (int i = 0; i < room_num.length(); i++) {
            int num = room_num.charAt(i) - '0';
            if (num == 9) nums[6]++;
            else nums[num]++;
        }
        nums[6] = nums[6]/2 + nums[6]%2;
        Arrays.sort(nums);
        System.out.println(nums[8]);
    }
}

0개의 댓글