반응형
문제 출처 :
https://www.acmicpc.net/problem/1475
알고리즘 분석 :
문제 해결에 필요한 사항
1. 플라스틱 숫자 카드를 갱신해주는 방법
2. 플라스틱 숫자 카드 중 6과 9를 이용하는 방법
따로 알고리즘 해석 없이 소스 코드의 주석을 통해 설명한다.
소스 코드 :
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #include <stdio.h> int set[11] = { 0, }; // 플라스틱 숫자 지급 받는 배열 int cnt = 0; void setting() { for (int i = 0; i < 10; i++) set[i]++; cnt++; } int main() { int arr; int len, i; int num[11] = { 0, }; scanf("%d", &arr); // int형 숫자들 하나씩 받아들여 해당되는 num배열에 +1 while(arr != 0) { num[arr%10]++; arr = arr / 10; } i = 0; while (i != 10) { while (num[i] != 0) // { if (set[i] != 0) { set[i]--; num[i]--; } else setting(); // 6번 플라스틱 숫자일 때 if (i == 6 && set[i] == 0) { // 9번 플라스틱 숫자가 존재한다면 이용 if (set[9] > 0 && num[6] > 0) { set[9]--; num[6]--; } } // 9번 플라스틱 숫자일 때 if (i == 9 && set[i] == 0) { // 6번 플라스틱 숫자가 존재한다면 이용 if (set[6] > 0 && num[9] > 0) { set[6]--; num[9]--; } } } i++; } printf("%d", cnt); return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[11004번] K번째 수(Quick Search) (0) | 2016.08.06 |
---|---|
[1543번] 문서 검색 (strstr) (2) | 2016.07.25 |
[2669번] 직사각형 네개의 합집합의 면적 구하기 (0) | 2016.07.21 |
[1676번] 팩토리얼 0의 개수 (0) | 2016.07.21 |
[10164번] 격자상의 경로(Dynamic Programming, Mathematic) (0) | 2016.07.20 |