반응형
SW Expert Academy 문제풀이 1926번 간단한 369 게임. 간단한데 간단하지 않다. 그냥 if문을 이용해서 경우의 수를 다 나눠줬다.
문제
1. 숫자 1부터 순서대로 차례대로 말하되, “3” “6” “9” 가 들어가 있는 수는 말하지 않는다. 2. "3" "6" "9"가 들어가 있는 수를 말하지 않는대신, 박수를 친다. 이 때, 박수는 해당 숫자가 들어간 개수만큼 쳐야 한 다. 예를 들어 숫자 35의 경우 박수 한 번, 숫자 36의 경우 박수를 두번 쳐야 한다. |
풀이
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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #include <stdio.h> int nChker(int num) { int chk = 0; if (num == 3 || num == 6 || num == 9) { chk = 1; } return chk; } int chChker(char chNum) { int chk = 0; if (chNum == '3' || chNum == '6' || chNum == '9') { chk = 1; } return chk; } int main() { int num; scanf("%d", &num); for (int i = 1; i <= num; i++) { if (i < 10) { if (nChker(i) == 1) { printf("- "); } else { printf("%d ", i); } } else if (i < 100) { char chn[3]; sprintf(chn, "%d", i); if (chChker(chn[0]) == 1) { if (chChker(chn[1]) == 1) { printf("-- "); } else { printf("- "); } } else if (chChker(chn[1]) == 1) { printf("- "); } else { printf("%d ", i); } } else if (i < 1000) { char chn[4]; sprintf(chn, "%d", i); if (chChker(chn[0]) == 1) { if (chChker(chn[1]) == 1) { if (chChker(chn[2]) == 1) { printf("--- "); } else { printf("-- "); } } else if (chChker(chn[2]) == 1) { printf("-- "); } else { printf("- "); } } else if (chChker(chn[1]) == 1) { if (chChker(chn[2]) == 1) { printf("-- "); } else { printf("- "); } } else if (chChker(chn[2]) == 1) { printf("- "); } else { printf("%d ", i); } } else { printf("%d", i); } } return 0; } | cs |
정수형의 3, 6, 9를 입력하는 함수와 문자형의 '3', '6', '9'를 판별하는 함수를 만들었다.
그리고 n이 1자리, 2자리, 3자리 수일 때로 각각 경우를 나눠줬다.
1자리는 정수형으로 369를 판별한다.
2자리 수 부터는 문자형으로 369를 판별한다.
맨 앞의 수가 369일 경우 그 다음 자리를 판별한다. 각각의 경우의 수에 대해 -, --, ---를 판별한다.
1000이 입력될 경우 그냥 1000을 그대로 출력한다.
반응형
'DEVELOP > Algorithm' 카테고리의 다른 글
[C] SW Expert Academy 문제풀이 :: 1989번 (0) | 2018.09.12 |
---|---|
[C] SW Expert Academy 문제풀이 :: 1970번 (0) | 2018.09.11 |
[C] SW Expert Academy 문제풀이 :: 2001번 (0) | 2018.09.08 |
[C] SW Expert Academy 문제풀이 :: 2005번 (0) | 2018.09.07 |
[C] SW Expert Academy 문제풀이 :: 2007번 (0) | 2018.09.05 |
[Python] 백준 알고리즘 문제풀이 :: 2108번 (0) | 2018.09.03 |
[Python] 백준 알고리즘 문제풀이 :: 2775번 (0) | 2018.09.02 |
[C] SW Expert Academy 문제풀이 :: 2068번 (0) | 2018.09.01 |