728x90
반응형
문제
내가 작성한 코드 (C++ 성공)
#include <iostream>
using namespace std;
int main(){
cin.tie(0);
int n;
cin >> n;
/*
1 2 3 4
5
8 7 6
9
10 11 12
13
16 15 14
17
...
*/
if(n%8 >= 1 && n%8 <= 5){
cout << n%8;
} else if(n%8 == 6){
cout << "4\n";
} else if(n%8 == 7){
cout << "3\n";
} else if(n%8 == 0){
cout << "2\n";
}
return 0;
}
정리
처음에 이 문제를 보고나서 반복문을 이용해서 카운트를 증가시켜주거나 감소시켜주면 되겠다 생각했다.
하지만, 시간초과로 틀려서 조건문만을 이용해서 규칙을 찾아 풀어보았다.
1 2 3 4 5
1 2 3 4
5
8 7 6
9
10 11 12
13
16 15 14
17
이런식으로 가기 때문에 규칙을 찾다보니 8로 나눈 나머지로 구분할 수 있었다.
8로 나눈 나머지가 1~5까지는 각 숫자를 출력하고
6일 때 4를, 7일 때 3을, 0일 때 2를 출력해 주도록 따로 조건문을 만들어 출력해주었다.
728x90
반응형
'알고리즘 > BaekJoon' 카테고리의 다른 글
[백준 알고리즘] 1920번 : 수 찾기 (0) | 2019.07.31 |
---|---|
[백준 알고리즘] 17213번 : 과일 서리 (0) | 2019.07.31 |
[백준 알고리즘] 4948번 : 베르트랑 공준 (0) | 2019.07.21 |
[백준 알고리즘] 1476번 : 날짜 계산 (0) | 2019.07.21 |
[백준 알고리즘] 1094번 : 막대기 (0) | 2019.07.21 |