본문 바로가기
CODING/BAEKJOON

[BAEKJOON] 1475번 방 번호

by snow_white 2022. 2. 6.


입력받은 수를 한 문자씩 나누어 숫자와 상응하는 인덱스 번호의 위치의 값을 1씩 증가시킨다.

해당 숫자가 몇 개 나왔는지 누적시킨다.

6과 9는 하나의 숫자로 취급하면 간단하다.

0~8까지 저장할 수 있는 정수형 배열을 만든다. (9는 6에 함께 저장할 것이기 때문에 제외시킴)

배열 초기 모든 저장된 값은 0으로 초기화되어 있으므로

숫자 1이면 인덱스 1의 저장값을 1로 증가, 숫자 2이면 인덱스 2 저장값을 1로 증가시킨다.

배열 크기만큼 반복문을 돌려 누적값을 카운트한다. 누적된 값을 1씩 빼주면서 (6은 9와 함께 저장되기 때문에 2씩 빼줌) 배열에 저장된 모든 값이 0이하가 될 때까지 반복한다.

즉, 반복문 한 번이 플라스틱 한 세트가 된다.

 

 

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

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int arr[] = new int[10];
		int sub[] = {1,1,1,1,1,1,2,1,1};
		int cnt=0, num=0;
		String str[] = br.readLine().split("");
		for(int i=0; i<str.length; i++) {
			int index = Integer.parseInt(str[i]);
			if(index==9) index = 6;
			arr[index]++;
		}
		while(true) {
			cnt=0;
			for(int i=0; i<9; i++) {
				
				if(arr[i]>0)
					arr[i] -= sub[i];
				
				else
					cnt++;
			}
			if(cnt>=9) break;
			num++;
		}
		System.out.println(num);
	}

}

[출처]

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

 

1475번: 방 번호

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

www.acmicpc.net

 

'CODING > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 1051번 숫자 정사각형  (0) 2022.02.08
[BAEKJOON] 10610번 30  (0) 2022.02.07
[BAEKJOON] 1436번 영화감독 숌  (0) 2022.02.05
[BAEKJOON] 7568번 덩치  (0) 2022.02.03
[BAEKJOON] 2609번 최대공약수와 최소공배수  (0) 2022.02.02

댓글