๐จ ๋ฌธ์
๋ฌธ์ ๋งํฌ: https://www.acmicpc.net/problem/2078
- ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ: ์ํ, ํธ๋ฆฌ
- ๋์ด๋: Silver 4
๐ฌ ํ์ด
๋ฌธ์ ์ ๋ฌดํ์ด์งํธ๋ฆฌ์ ์ด๋ค ๋
ธ๋ (a,b)์์
if a>b์ด๋ฉด, (a,b)๋ ๋ถ๋ชจ ๋
ธ๋์ ์ผ์ชฝ ์์์ด๊ณ ,
if a<b์ด๋ฉด, (a,b)๋ ๋ถ๋ชจ ๋
ธ๋์ ์ค๋ฅธ์ชฝ ์์์ด๋ค.
๋ฐ๋ผ์
if a>b์ด๋ฉด, (a,b)์ ๋ถ๋ชจ ๋
ธ๋๋ (a-b, b)์ด๊ณ ,
if a<b์ด๋ฉด, (a,b)์ ๋ถ๋ชจ ๋
ธ๋์ (a, b-a)์ด๋ค.
๊ทผ๋ฐ ์ ๋ ฅ๊ฐ A,B๊ฐ ์ต๋ 20์ต๊น์ง๋ผ๋..ใ ใ ์
์ฒ์์ ์๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋จ์ํ ์
๋ ฅ ๋
ธ๋์์๋ถํฐ ๊ท์น์ ๋ฐ๋ผ์ ๋ฃจํธ ๋
ธ๋๊น์ง ๋ฐ๋ผ ์ฌ๋ผ๊ฐ๋ ๋ฐฉ๋ฒ์ด์๋ค.
์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ ์๊ฐํ๊ณ ํ์์ ๋ ์ญ์๋ '์๊ฐ ์ด๊ณผ'. ๐๐ปํ๋ฆฐ ์ฝ๋ ํ์ธ
Why?
์ถ์ฒ) https://www.youtube.com/watch?v=IKnjzmyk70U
์ด์งํธ๋ฆฌ์์ ์ฝ์ ,๊ฒ์,์ญ์ ๋ฑ์ ์ฐ์ฐ์ ๋ชจ๋ ํธ๋ฆฌ์ ๋์ด๊ฐ ์ผ๋ง์ธ์ง์ ๋ฐ๋ผ์ ์๊ฐ๋ณต์ก๋๊ฐ ์ ํด์ง๋ค.
์ฌ๊ธฐ์ ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ฒ๋ผ ํธ๋ฆฌ๊ฐ ํ์ชฝ์ผ๋ก ์น์ฐ์น ๋ชจ์์ ์ ๋ ฅ๊ฐ์ ๋ฐ๋๋ค๋ฉด (ex. A=20์ต, B=1) ์๊ฐ์ด๊ณผ๊ฐ ๋๋ ๊ฒ์ด๋ค.
์ด์จ๋ ๊ทธ๋์ ๋ค๋ฅธ ํ์ด๋ฐฉ๋ฒ์ ์๊ฐํด์ผ ํ๋๋ฐ, ๋์ ํ ์ ๋ ์ฌ๋ผ์ ๊ฒฐ๊ตญ ๊ตฌ๊ธ๋ง์ ํด๋ดค๊ณ , ํ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ง์ฝ (a,b)์์ ๊ณ์ ์ผ์ชฝ ์์์ผ๋ก k๋ฒ ์ด๋ํ๋ฉด, a์ b๋ฅผ k๋ฒ ๋ํ๊ฒ ๋๊ณ ,
๋ง์ฝ (a,b)์์ ๊ณ์ ์ค๋ฅธ์ชฝ ์์์ผ๋ก k๋ฒ ์ด๋ํ๋ฉด, b์ a๋ฅผ k๋ฒ ๋ํ๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด (1,2) -> (3,2) -> (5,2)=(1+2*2, 2)๋ค.
๋ฐ๋ผ์ ์์(a,b)์์ ๋ชซ a/b๊ณผ ๋๋จธ์ง a%b ๋ฑ์ ์ ๋ณด๋ก '๊ณ์ ๊ฐ์ ๋ฐฉํฅ์ธ ๋ถ๋ชจ'๋ฅผ ์ฐพ์ ์ ์๋ค. ๐ก
์ฐธ๊ณ ) https://lastknight00.tistory.com/121
๐ฉ๐ป ์ฝ๋
C++
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
//freopen("input.txt", "rt", stdin);
int A, B;
cin >> A >> B;
int L = 0, R = 0;
while (!(A == 1 && B == 1)) {
/* A,B ์ค ํ๋๊ฐ 1์ธ ๊ฒฝ์ฐ๋ ๋ฐ๋ก ์ฒ๋ฆฌ */
if (A == 1) {
R += B - 1;
break;
}
else if (B == 1) {
L += A - 1;
break;
}
/* ์ฐ์์ผ๋ก ๊ฐ์ ๋ฐฉํฅ ๋ถ๋ชจ-์์์ ํ๋ฒ์ ์ฒ๋ฆฌ */
if (A > B) {
L += A / B;
A = A % B;
}
else {
R += B / A;
B = B % A;
}
}
cout << L << ' ' << R;
return 0;
}
'Coding Test > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค #11047. ๋์ 0 (C++) (0) | 2022.02.13 |
---|---|
[BOJ] ๋ฐฑ์ค #1251. ๋จ์ด ๋๋๊ธฐ (C++) (0) | 2022.02.13 |
[BOJ] ๋ฐฑ์ค #1010. ๋ค๋ฆฌ ๋๊ธฐ (C++) (0) | 2022.02.12 |
[BOJ] ๋ฐฑ์ค #1051. ์ซ์ ์ ์ฌ๊ฐํ (C++) (0) | 2022.02.12 |
[BOJ] ๋ฐฑ์ค #1448. ์ผ๊ฐํ ๋ง๋ค๊ธฐ (C++) (0) | 2022.02.12 |