import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
* 1475
다솜이는 은진이의 옆집에 새로 이사왔다.
다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다.
한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다.
다솜이의 방 번호가 주어졌을 때,
필요한 세트의 개수의 최소값을 출력하시오.
(6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.
9999 -> 2
995 -> 1
9912345780 -> 1
99912345780 -> 2
일단 9혹은 6의 갯수파악, 그리고 나머지 숫자중에서 제일 많은 횟수 파악
1. 모든 숫자중에서 9와 6 보다 나머지 숫자중에서 횟수가 가장 많으면 그 세트수 출력
2. 9와 6을 합해서 나누기 2한게 나머지 숫자보다 많으면 나눈값을 세트수로 출력
3. 9와 6을 합해서 나누기 2한게 나머지 숫자보다 적으면(같으면) 나머지 숫자중에서 가장 많은 세트수 출력
*/
public class DasomRoom {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String roomNumber = br.readLine();
int result = 0;
int lineCnt6 = 0;
int lineCnt9 = 0;
//for문으로 0부터 9까지 제일 많은 사용 된 숫자를 찾아냄.
for(int i=0; i<10; i++){
int lineCnt = 0;
int fromIndex = -1;
while ((fromIndex = roomNumber.indexOf(String.valueOf(i), fromIndex + 1)) >= 0) {
lineCnt++;
}
if(i == 6){
lineCnt6 = lineCnt; //숫자 6을 따로 저장
}else if(i == 9){
lineCnt9 = lineCnt; //숫자 9를 따로 저장
}else{
if(result < lineCnt){
result = lineCnt;
}
}
}
//6과 9는 뒤집어서 사용할 수 있으니까 더해서 나누기2하면 사용되는 세트 수를 구할 수 있음
int cnt69 = (int)Math.ceil((double)(lineCnt6 + lineCnt9)/2);
if(result < cnt69){
System.out.println(cnt69);
}else{
System.out.println(result);
}
}
}
import java.io.InputStreamReader;
/*
* 1475
다솜이는 은진이의 옆집에 새로 이사왔다.
다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다.
한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다.
다솜이의 방 번호가 주어졌을 때,
필요한 세트의 개수의 최소값을 출력하시오.
(6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.
9999 -> 2
995 -> 1
9912345780 -> 1
99912345780 -> 2
일단 9혹은 6의 갯수파악, 그리고 나머지 숫자중에서 제일 많은 횟수 파악
1. 모든 숫자중에서 9와 6 보다 나머지 숫자중에서 횟수가 가장 많으면 그 세트수 출력
2. 9와 6을 합해서 나누기 2한게 나머지 숫자보다 많으면 나눈값을 세트수로 출력
3. 9와 6을 합해서 나누기 2한게 나머지 숫자보다 적으면(같으면) 나머지 숫자중에서 가장 많은 세트수 출력
*/
public class DasomRoom {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String roomNumber = br.readLine();
int result = 0;
int lineCnt6 = 0;
int lineCnt9 = 0;
//for문으로 0부터 9까지 제일 많은 사용 된 숫자를 찾아냄.
for(int i=0; i<10; i++){
int lineCnt = 0;
int fromIndex = -1;
while ((fromIndex = roomNumber.indexOf(String.valueOf(i), fromIndex + 1)) >= 0) {
lineCnt++;
}
if(i == 6){
lineCnt6 = lineCnt; //숫자 6을 따로 저장
}else if(i == 9){
lineCnt9 = lineCnt; //숫자 9를 따로 저장
}else{
if(result < lineCnt){
result = lineCnt;
}
}
}
//6과 9는 뒤집어서 사용할 수 있으니까 더해서 나누기2하면 사용되는 세트 수를 구할 수 있음
int cnt69 = (int)Math.ceil((double)(lineCnt6 + lineCnt9)/2);
if(result < cnt69){
System.out.println(cnt69);
}else{
System.out.println(result);
}
}
}
댓글
댓글 쓰기