기록하는 개발자

[백준 1452번] 방 번호 - JAVA 알고리즘 본문

Baekjoon Online Judge

[백준 1452번] 방 번호 - JAVA 알고리즘

gitseok 2022. 4. 1. 14:49

 

 

1452번
문제
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
입력
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 필요한 세트의 개수를 출력한다.
예제 입력 예제 출력
   
6629612231 3

 

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

public class Main {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 선언
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // 선언

		String room = br.readLine(); //방 번호
		int[] arr = new int[10];	 //숫자별 개수 저장
		
		int maxCount = 0;
		
		for(int i = 0; i<=9; i++) { //0부터 9까지 반복
			int count = 0;
			for(int j = 0; j<room.length(); j++) { //입력된 숫자수만큼 반복
				int num = room.charAt(j)-'0';
				if(i == num) {
					count = count + 1;
				}
			}
			arr[i] = count; //숫자별 건수 저장
			if(i == 6 || i == 9) { //6이거나 9일때 
				if(maxCount<((int) (0.5+(double)(arr[6]+arr[9])/2))) {
					maxCount = (int) (0.5+(double)(arr[6]+arr[9])/2);
				}
			}else if(maxCount<count) {
				maxCount = count;
			}
		}

		bw.write(maxCount+"");
		bw.close();
		br.close();
	}
}

 

 

실행 결과

 

개인적으로 정리한 내용을 간단하게 풀어 작성했습니다.
이해가 안가는 부분은 댓글 남겨주시면 설명해드리겠습니다.

 

Comments