끄적끄적 코딩
article thumbnail
728x90

다섯 손가락으로 숫자를 셀 때 N은 어떤 손가락으로 세게 될지 찾는 문제입니다.
순서는    [ 엄지 - 검지 - 중지 - 약지 - 새끼 - 약지 - 중지 - 검지 -엄지 - 검지 .... ] 입니다.

특징을 보면 엄지와 새끼손가락은 한 바퀴를 돌때 동안 1번만 거쳐가는 반면
나머지 손가락들은 2번 거쳐갑니다.

검지와 약지는 짝수만 올 수 있습니다.
x를 4로 나누었을 때
검지는 짝수가 나오고
약지는 홀수가 나옵니다.

엄지 중지 새끼손가락은 홀수만 올 수 있습니다.
x를 2로 나누었을 때 중지는 홀수만 올 수 있습니다.

다시 x를 2로 나누었을 때 
엄지는 짝수가 나오고
새끼손가락은 홀수가 나옵니다.


이를 정리해보면

x가 짝수면 (검지, 약지)
    x를 4로 나누었을 때
                    짝수면 (검지)
                    홀수면 (약지)

x가 홀수면 (엄지, 중지, 새끼)
    x를 2로 나누었을 때 
                    홀수면 (중지)
                    x를 2로 나누었을 때
                                  짝수면 (엄지)
                                  홀수면 (새끼)
가 나옵니다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int main(int argc, char *argv[])
{
	int x;
	cin >> x;
	
	if (x % 2 == 0){
		x /= 4;
		
		if(x % 2 == 0){
			cout << "2" << endl;
		}
		else{
			cout << "4" << endl;
		}
	}
	else{
		x /= 2;
		if(x % 2 == 1){
			cout << "3" << endl;
		}
		else{
			x /= 2;
			if(x % 2 == 1){
				cout << "5" << endl;
			}
			else{
				cout << "1" << endl;
			}
		}
	}

    return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 10951번 A+B - 4  (0) 2019.08.03
[C++] 백준 10950번 A+B - 3  (0) 2019.08.03
[C++] 백준 10818번 최소, 최대  (0) 2019.08.03
[C++] 백준 10818번 최소, 최대  (0) 2019.08.03
[C++] 백준 2588번 곱셈  (0) 2019.08.03

검색 태그