출처 : https://www.acmicpc.net/problem/1475
소스코드
public class Q1475 { static int[] arr; public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); int num; arr = new int[9]; // 6이랑 9는 6에 한꺼번에 넣는다 //숫자를 하나씩 꺼내 해당 배열에 넣는다 (6, 9는 arr[6]으로) for(int i=0; i<str.length(); i++) { num = Integer.parseInt(str.charAt(i)+""); if(num==9) { arr[6]++; }else { arr[num]++; } } int max = 0; int idx = 0; //배열중 arr[6]을 제외한 나머지 요소중 최대값(최소 필요세트수)을 갖는 위치의 idx를 저장 for(int i=0; i<arr.length; i++) { if(i==6) { continue; } if(max<arr[i]) { max = arr[i]; idx = i; } } //arr[6]의 값을 사용해 최소 필요 세트수를 구함 int n = arr[6]; if(n%2!=0) { n = n/2+1; }else { n/=2; } //두 최소 필요 세트중 최대값을 구해 출력 System.out.print(Math.max(arr[idx], n)); } }
설명은 주석에 달아놓았습니다.
간단히 말하면 6과 9를 하나로 취급하며 나머지 수들의 최소 필요 세트수와 6과 9의 최소 필요 세트수 중
최대값을 출력하였습니다아ㅏㅏ아아
'짱구 굴리기 (Q) - ' 카테고리의 다른 글
[백준 1920] 수 찾기 (0) | 2019.01.25 |
---|---|
[백준 1012] 유기농 배추 (0) | 2019.01.25 |
[백준 1316] 그룹단어 체크 (0) | 2019.01.23 |
[백준 4344] 평균은 넘겠지 (0) | 2019.01.23 |
[백준 1546] 평균 (0) | 2019.01.23 |