반응형
이 포스트에서는 프로그래밍 문제 사이트 백준 Online Judge(BOJ)에서 64일 연속으로 문제를 풀이하면 Solved.ac에서 주는 뱃지인 "새싹 6단계"를 받은 기념으로 리뷰해봅니다.
그 전에 오늘 푼 아주 쉬운 문제를 간단히만 리뷰하겠습니다.
1934번 : 최소공배수
두 수 A, B에 대한 최소공배수를 구하는 문제입니다.
유클리드 호제법을 사용하면, 두 수의 GCD(최대공약수)를 짧은 시간에 빠르게 구할 수 있고 LCM = A/GCD * B/GCD * GCD = A*B/GCD로 구할 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int GCD(int a, int b) {
if(a < b) swap(a, b);
while(b != 0) {
int temp = a%b;
a = b;
b = temp;
}
return a;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL), cout.tie(NULL);
int T; cin >> T;
while(T--) {
int a, b; cin >> a >> b;
cout << a*b/GCD(a, b) << "\n";
}
}
위의 코드의 GCD 함수가 바로 유클리드 호제법으로 최대공약수를 구하는 코드이고, 결과적으로는 a*b/GCD(a, b)를 구해줌으로써 답을 얻을 수 있습니다.
풀이 코드를 제출하면 위와 같은 기록으로 통과할 수 있습니다.
이렇게 오늘까지 해서 64일 연속으로 백준 Online Judge에서 문제를 해결하였습니다.
다만 스트릭을 장착한 상태로 했기 때문에 이틀 정도 빠진 것은 유감으로 생각합니다.
결과적으로는 위와 같이 <새싹 6단계> 뱃지를 획득할 수 있었습니다.
이 뱃지가 의미있다고 생각하는 이유는, 제가 한창 약대 입시 준비를 할 때도 하루도 빠짐없이 습관을 유지하면서 풀었기 때문이고 여기에서 작은 보람을 느끼고 있습니다.
앞으로도 PS를 꾸준히 하도록 하겠습니다.
반응형
'알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준/BOJ] 5052번 : 전화번호 목록 (트라이, Trie) (0) | 2022.02.23 |
---|---|
[백준/BOJ] 13977번 : 이항 계수와 쿼리 (페르마의 소정리) (0) | 2022.02.22 |
[백준/BOJ] 1541번 : 잃어버린 괄호, 13305번 : 주유소 (그리디 알고리즘) (0) | 2022.02.21 |
[백준/BOJ] 12865번 : 평범한 배낭 (배낭 문제, Gold V) (0) | 2022.02.21 |
[백준/BOJ] 2565번 : 전깃줄 (동적 프로그래밍(DP), Gold V) (0) | 2022.02.21 |