본문 바로가기
공부/알고리즘

백준1475_방번호

by 미네밍 2017. 1. 4.

문제

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

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

입력

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

출력

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

예제 입력 

9999

예제 출력 

2


[코드]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        int [] num = new int[10];
        
        for(int i = 0 ; i < S.length(); i++){
            num[S.charAt(i)- '0']++;
        }
        
        int sn = num[6+ num[9];
        sn = (sn/2+ (sn%2);
        
        for(int i = 0 ; i< 10; i++){
            if(i!=6 && i!=9)
                sn = Math.max(sn,num[i]);
        }
        
        System.out.println(sn);
    }
 
}
 
 
cs


[알고리즘]


String 변수 s 에 받은 값을 charAt 함수로 각 자리를  num 배열의  index 값으로 활용해 값을 올려준다. (개수 증가)


6과 9에 있는 숫자는 모두 더해 2로 나눈 몫과 나머지를 합해주고 sn 이라는 변수에 저장한다. (세트가 얼마나 필요한지를 나타내는 변수)


6과 9를 제외하고는, 각 배열이 나타내는 숫자는 곧 세트의 수와 같기 때문에, num 배열을 순회하며 현재 sn보다 더 큰 수가 있다면 sn에 그 숫자를 대입한다.


마지막으로 sn 을 출력한다.


'공부 > 알고리즘' 카테고리의 다른 글

백준1152_단어의 개수  (0) 2017.01.11
백준1916_최소비용 구하기  (2) 2017.01.09
백준1753_최단경로  (0) 2017.01.02
백준1934_최소공배수  (0) 2016.12.29
백준5014_스타트링크  (1) 2016.12.27

댓글