728x90
숫자세트가 가진 성질 중 6과 9를 서로 바꿀 수 있다는 점에 주목해야합니다.
이 때문에 2번 틀렸습니다.
반례) 9900666 -> 결과값 : 3
900966 -> 결과값 : 2
각 자리 값을 저장할 배열을 선언해 주고,
자리값을 앞부분부터 뒷부분 까지 parsing하여
index에 맞춰서 counting을 해줍니다.
이 때 중요한 점은 6과 9입니다.
6과9의 총 개수가 2개일 경우 1세트, 4개일 경우 2세트, 6개일 경우 3세트 ..
1개일 경우 1세트, 3개일 경우 2세트, 5개일 경우 3세트..
숫자 하나가 남지만 세트를 추가해줘야하는 홀수개수의 경우 때문에
경우에 따라 조건문을 사용하여 need배열에 다시 재정의해서 넣어줍니다.
이 때 이미 need[6] 즉 6이 필요한 개수를 이미 정의했으므로
need[9]는 그보다 작은 아무 숫자나 넣어주면 됩니다.
6과 9가 재정의된 배열의 max값이 문제에서 요구하는 숫자세트의 개수입니다.
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 29 30 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String T = sc.next(); int[] need = new int[10]; for(int i=0;i<T.length();i++) { need[T.charAt(i)-'0']++; } if((need[6]+need[9])%2==1) { need[6]=(need[6]+need[9])/2+1; } else need[6]=(need[6]+need[9])/2; need[9]=need[6]; int max=0; for (int i : need) { if(max<i) max=i; } System.out.println(max); } } |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 1011번 Fly me to the Alpha Centauri (0) | 2018.04.26 |
---|---|
[백준][Java] 10250번 ACM 호텔 (0) | 2018.04.26 |
[백준][Java] 2775번 부녀회장이 될테야 (0) | 2018.04.26 |
[백준][Java] 1193번 분수찾기 (0) | 2018.04.26 |
[백준][Java] 2292번 벌집 (0) | 2018.04.25 |