본문 바로가기
백준/코딩연습1

[백준] 방 번호 (1475)(java)

by 유줘니 2019. 5. 16.

원본 문제 : https://www.acmicpc.net/problem/1475

 

문제

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

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

입력

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

출력

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

예제 입력 1

9999

예제 출력 1

2

 

 

 

 

 

import java.util.Scanner;

public class BOJ1475 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		//문자열을 입력 받음
		String str = sc.nextLine();
		
		//9를 6으로 교체
		str = str.replace('9', '6');
		
		//0~8까지 9개의 int배열을 만듬
		int[] intArr = new int[9];
		
		//최대 갯수를 저장할 int형 변수 선언 및 초기화
		int max = 0;
		
		//숫자에 해당하는 배열 인덱스의 값을 ++함
		for(int i = 0; i < str.length() ; i++) {
			int num = (int)(str.charAt(i)-48);
			intArr[num]++;
		}
		
		//6의 경우 9를 포함하므로 2로 나누고, 반올림을 하여 인덱스 6의 값을 바꿈
		if(intArr[6]!=0)
			intArr[6]=Math.round(intArr[6]/2.0f);
		
		//int배열을 탐색하면서 최대값을 구함
		for(int i = 0; i < intArr.length; i++) {
			max = Math.max(intArr[i], max);
		}

		//최댓값을 출력
		System.out.println(max);
	}
}

댓글