Deff_Dev
[코드업] 디지털 도어 락 (C++) 본문
디지털 도어 락
XX사에서 만든 디지털 도어락은 내부적으로 보안키 값을 가지고 있고, 이 값은 1,000이하의 자연수로 이루어져 있다. 각 카드키들은 ID값을 가지고 있는데, 이 값이 도어락의 내부 보안키 값의 약
codeup.kr
문제
이 문재는 입력된 3개의 수의 최대 공약수를 구하는 문제이다.
풀이
유클리드 호제법을 이용하여 최대 공약수를 구했다.
유클리드 호제법 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란
ko.wikipedia.org
#include <iostream>
// https://codeup.kr/problem.php?id=2650
using namespace std;
// 유클리드 호제법
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int main() {
int key1, key2, key3;
// 3개의 내부 보안키 값을 입력 받는다.
cin >> key1 >> key2 >> key3;
// 첫 번째와 두 번째 수의 최대공약수를 구한다.
int gcd1 = gcd(key1, key2);
// 위에서 구한 최대공약수와 세 번째 수의 최대공약수를 구한다.
int masterKey = gcd(gcd1, key3);
// 계산된 값(최대공약수)을 출력한다.
cout << masterKey << endl;
return 0;
}
'코딩테스트 > 코드업' 카테고리의 다른 글
[코드업] 나도 IQ 150 (C++) (2) | 2024.04.10 |
---|---|
[코드업] (재귀함수) 팩토리얼 계산 (C++) (0) | 2024.04.08 |
[코드업] (재귀함수) 2진수 변환 (C++) (0) | 2024.04.07 |
[코드업] 계단 오르기 2 (C++) (2) | 2024.04.06 |
[코드업] 기억력 테스트 2 (C++) (1) | 2024.04.05 |