🔗 백준 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]);
}
}