알고리즘/BaekJoon
[백준 알고리즘] 17362번 : 수학은 체육과목입니다 2
남제이입니다!
2019. 7. 31. 23:01
728x90
반응형
문제
17362번: 수학은 체육과목 입니다 2
첫 번째 줄에 19번 문제 세 번째 줄에 등장하는 수 '1000'을 자연수 n으로 바꾸었을 때 그에 해당하는 답의 번호를 출력한다. 즉, 1 이상 5 이하의 자연수 중 하나를 출력해야 한다.
www.acmicpc.net
내가 작성한 코드 (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
반응형