새벽코딩

[백준] [1475] 방 번호 (구현) 본문

알고리즘

[백준] [1475] 방 번호 (구현)

J 코딩 2022. 12. 27. 23:40
반응형

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

1475번: 방 번호

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

www.acmicpc.net


문제

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

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

입력

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

출력

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

예제 입력 1 복사

9999

예제 출력 1 복사

2

예제 입력 2 복사

122

예제 출력 2 복사

2

예제 입력 3 복사

12635

예제 출력 3 복사

1

예제 입력 4 복사

888888

예제 출력 4 복사

6

※ JAVA 코드 (방 번호)

import java.io.*;
import java.util.*;

public class Main {
	
	static int [] arr;
	
	// 0~9까지 수를 담을 배열을 채운다
	public static void makeArr(String str) {
		for(int i = 0; i < str.length(); i++) {
			// 문자열의 각 인덱스 숫자
			int idx = (int) str.charAt(i) - '0';
			// 배열의 해당 인덱스 증가
			arr[idx]++;
		}
	}
	
	// 0~9까지 수 중 가장 많은 수를 구한다
	public static int maxNum() {
		int result = -1;
		int tmpNum = 0;
		for(int i = 0; i < arr.length; i++) {
			if(i == 6 || i == 9) {
				tmpNum += arr[i];
			} else {
				result = Math.max(arr[i], result);
			}
		}
		// 6+9가 짝수면(나머지가 0이면) 그대로, 홀수면(나머지가 1이면) 1을 더해준다
		tmpNum = tmpNum/2 + tmpNum%2;
		result = Math.max(tmpNum, result);
		return result;
	}
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// 0~9 까지 담을 배열
		arr = new int[10];
		// 입력 값
		String N = br.readLine();
		
		// 배열에 0~9까지 담기위한 메서드
		makeArr(N);
		int maxVal = maxNum();
		// 출력		
		System.out.println(maxVal);
	}

}

※ 생각정리 (방 번호)
방 번호문제는 단순 구현문제로 재미있다. 여러 방법으로 풀 수 있겠지만 0~9까지 숫자로 제한이 걸려있으니 각 숫자를 배열에 담아서 풀기로 하였다.
arr배열의 크기를 10으로 만들어 0~9까지 수를 담을 수 있는 공간을 만들고 문자열을 읽어 각 문자별로 해당 인덱스를 증가해 주었다.
이제 각 인덱스 중 가장 큰(개수가 많은) 수를 구하면 됬지만, 6과 9를 고려해야한다.
6, 9는 중복으로 사용할 수 있기 때문에 해당 숫자들은 따로 변수에 담아두고, 둘의 합이 짝수일 경우는 2로 나눈 몫을 홀수인경우에는 2로나눈 몫에 1을 더해서 변수에 담아두었다.
마지막으로, 해당 수중 최대값을 함수에서 뽑아 출력해주었다.
 
-새벽코딩-

반응형
Comments