[백준] - 방 번호

조혜진·2022년 5월 15일
0

java 코딩테스트

목록 보기
6/7

📌 문제

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

📌 입력

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

📌 출력

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

📌 코드

package test;
import java.util.Scanner;
public class test2 {	
	public static void main(String[] args) 	
		Scanner sc = new Scanner(System.in);
		// 문자열로 입력받기
		String st = sc.nextLine();
		// 6을 9으로 교체
//		st = st.replaceAll("9", "6");
		st = st.replaceAll("6", "9");
		// 0~9 까지 10개의 int배열
		int[] arr = new int[10];
		// 최댓값 변수 선언
		int max = 0;
		for(int i = 0; i < st.length(); i++) {
			// 숫자에 해당하는 배열 인덱스의 값을 ++함
			// -48 을 하는 이유 : 0의 아스키코드값
			int num = (int)(st.charAt(i)-48);
			arr[num]++;
		}
		// 9의 경우
		if(arr[9] != 0) {
			// 6를 포함하기 때문 2로 나눈후 
			// 반올림을 하여 인덱스 9의 값을 바꿔줌
			arr[9] = Math.round(arr[9]/2.0f);
		}
		for(int i = 0; i < arr.length; i++) {
			// int배열을 확인하면서 최대값을 구함
			max = Math.max(arr[i], max);
		}
		System.out.println(max);
	}
}

<출처 : https://www.acmicpc.net/problem/1475 >

profile
안녕하세요

0개의 댓글