본문 바로가기
백준

백준 1475번 : 방 번호

by Huiyeong 2021. 3. 6.

 문제

www.acmicpc.net/problem/1475

 

1475번: 방 번호

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

www.acmicpc.net

1475 방 번호

 

 구현 방법

  수가 겹친다면 한 세트는 0~9까지 하나씩 밖에 없으므로 필요한 세트 개수의 최솟값은 0~9까지의 숫자 중 빈도수가 제일 높은 값입니다.

또한 6은 9로도 쓸 수 있고 9는 6으로도 쓸 수 있으므로 현재까지의 6, 9 개수 중 더 작은 값에 추가를 해주면 됩니다.

 

 0~9까지 숫자가 몇 개가 있는지 체크할 수 있게 boolean 배열을 10크기만큼 생성해주었습니다. 

숫자를 하나씩 보며 해당 숫자의 인덱스에 개수를 더해줍니다. 

모든 수의 탐색이 끝나면 체크한 배열에서 가장 큰 값을 출력해줍니다.

 

 구현 코드

package BOJ.Silver;

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

public class B1475_방번호 {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String N = br.readLine();
		int[] numbers = new int[10];
		for (int i=0;i<N.length();i++) {
			char temp = N.charAt(i);
			if (temp=='6' || temp=='9') { // 숫자가 6이나 9일 때
				temp = numbers[6]<numbers[9]?'6':'9'; // 현재까지 6과 9의 개수를 비교해서 더 작은 값에 ++
			}
			numbers[temp-'0']++;
		}
		int MAX = Integer.MIN_VALUE;
		for (int i=0;i<10;i++) {
			MAX = Math.max(numbers[i], MAX);
		}
		System.out.println(MAX);
	}
}

 

정답!

'백준' 카테고리의 다른 글

백준 1205번 : 등수 구하기  (0) 2021.03.07
백준 1476번 : 날짜 계산  (0) 2021.03.06
백준 1292번 : 쉽게 푸는 문제  (0) 2021.03.06
백준 14503번 : 로봇 청소기  (0) 2021.03.06
백준 4948번 : 베르트랑 공준  (0) 2021.03.06