반응형
[BOJ][C++] 1436 영화감독 숌
문제
https://www.acmicpc.net/status?user_id=heekim0719&problem_id=1436&from_mine=1
풀이
숫자를 올려주면서 6이 연속으로 3개가 있는지 확인하는 방식으로 풀었습니다.
이틀 째 이유도 모른 채 틀리기만 했는데.. 마지막에 배열 출력을 할 때 0이면 아예 출력이 되지 않도록 해서 발생하는 오류가 있었네요ㅠㅠ 하...
우선 최대 자릿수를 10으로 정하고 배열에 666을 넣어주었습니다. 그 이후 배열에 666이 있으면 n-- 를 해줍니다. 이렇게 해줄 경우 break 로 for문을 멈추고 n=0이 아닐 경우 up함수를 이용해 값을 올려줍니다. n이 0이 되면 빠져나온 뒤 0일 경우 출력을 안하다가 다른 숫자가 나오면 isOK라는 bool값을 이용해 이하 모든 자리를 출력하도록 합니다.
코드
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 | #include <iostream> using namespace std; int arr[10] = { 0,0,0,0,0,0,0,6,6,6 }; void up(int index) { if (arr[index] == 9) { arr[index] = 0; up(index - 1); } else arr[index]++; } int main() { int n; cin >> n; while (1) { for (int i = 9; i >= 2; --i) { if (arr[i] == 6 && arr[i - 1] == 6 && arr[i - 2] == 6) { n--; break; } } if (n == 0) { bool isOK = false; for (int i = 0; i < 10; i++) { if (!isOK) { if (arr[i] == 0) continue; else { isOK = true; cout << arr[i]; } } else cout << arr[i]; } break; } else up(9); } } | cs |
반응형
'Language > C++' 카테고리의 다른 글
[C++] call by value 와 call by reference (0) | 2019.03.07 |
---|---|
[BOJ][C++] 11729 하노이 탑 이동 순서 (2) | 2018.12.19 |
[C++][BOJ] 1018 체스판 다시 칠하기 (0) | 2018.12.14 |
[BOJ][C++] 2839 설탕옮기기 (0) | 2018.12.12 |
[C++][오류] 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. (0) | 2018.12.11 |
댓글