๐ ๋ฌธ์
์2์๋.... ์์ด์ ๋ฐฐ์ฐ๋ ๋จ์์์ ๊ตฐ์์ด์ด๋ผ๋ ๊ฐ๋ ์ด ๋์จ๋ค.
ํํ ๋ฉด์ ์ ๋ณผ ๋๋ ์ด ๋ฌธ์ ๊ฐ ๋์์๋๋ฐ ๊ทธ๋๋ ์๊ฐ์ด ์ด๋ฐํ ํ์ ๋นํฉํ์ฌ ์ฝ๋๋ ์์ฑํ์ง ๋ชปํ๊ณ
์๊ฐ์ ๋ ์คํ ๋ ์ด๋ป๊ฒ ํด๊ฒฐํ๋ฉด ์ข์์ง ๋งํด๋ณด๋ผ๊ณ ํ์ จ๋คใ ใ ใ
๋ฉด์ ๊ด๋ค์ ๋๋ง ๋ณด๊ณ ๊ณ์๊ณ ... ์ฝ๋๋ก๋ ์ด๋ป๊ฒ ํด์ผํ ์ง ๋นจ๋ฆฌ๋นจ๋ฆฌ ์๊ฐ๋์ง๋ ์๊ณ ... ๊ทธ๋์
"์ ํน์.. ๊ตฐ์์ด์ด๋ผ๊ณ ์์๋์...? ๊ณ ๋ฑํ๊ต๋ ๋ฐฐ์ ๋๊ฑด๋ฐ ์ด์ฉ๊ณ ์ ์ฉ๊ณ ...." ํ๋ฉด์ ํก์ค์์คํ๊ณ ์จ ๊ธฐ์ต์ด ์๋ค.
์จ๋ ํฉ๊ฒฉ~!
๐ ํด๊ฒฐ ๋ฐฉ๋ฒ
๋ฌธ์ ์์ ๋งํ๋ ์กฐ๊ฑด์ ๊ตฐ์์ด ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
์ด๋ ์์ธํ ๋ณด๋ฉด ํ์๊ตฐ์ ๋ถ๋ชจ๊ฐ ์ฆ๊ฐํ๊ณ ๋ถ์๊ฐ ๊ฐ์ํ์ง๋ง
์ง์๊ตฐ์ ๋ถ๋ชจ๊ฐ ๊ฐ์ํ๊ณ ๋ถ์๊ฐ ์ฆ๊ฐํ๋ ๊ฒ์ ์ ์ ์๋ค.
๋ฐ๋ผ์ ๋ด๊ฐ ์ฐพ๊ณ ์ํ๋ ๋ฒ์งธ์ ์๊ฐ ๋ช ๊ตฐ์ ์๋์ง๋ฅผ ์๊ธฐ ์ํด์
if ((1 + i * (i - 1) / 2 <= x) && (x < 1 + i * (i + 1) / 2))โ
์์ ๊ฐ์ if๋ฌธ์ ์์ฑํด์ฃผ์๋ค.
'1 + i * (i - 1) / 2' ์ ๊ฐ ๊ตฐ์ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๊ณ ,
'1 + i * (i + 1) / 2' ์ ๊ทธ ๋ค์ ๊ตฐ์ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ปํ๋ค.
์ด ์์
1 = 1๊ตฐ
2 ~ 3 = 2๊ตฐ
4 ~ 6 = 3๊ตฐ
7 ~ 10 = 4๊ตฐ
....
์ธ ๊ฒ์ ํ์ฉํ์ฌ ๊ณ์ฐจ์์ด์ ํตํด ๊ตฌํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ต์ ์์๊ฐ ์๋ ๋ถ์๋ก ๋ํ๋ด์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ถ๋ ฅ ํํ๋ ๋ถ์ + '/' + ๋ถ๋ชจ ๊ผด๋ก ํด์ผํ๋ค.
๋ฐ๋ผ์ ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๊ฐ๊ฐ ๊ตฌํด์ฃผ์ด์ผ ํ๋๋ฐ
์๋ฅผ ๋ค์ด, 9๋ฒ์งธ ๋ถ์๋ฅผ ์ฐพ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํ์.
๊ทธ ์๋ 4๊ตฐ์ ์๊ณ ,
๋ถ์๋ 1์๋ค๊ฐ ์์ ๊ณผ 4๊ตฐ์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค ์ฐจ์ด ๋งํผ์ ๋ํ ์ซ์์ด๊ณ ,
๋ถ๋ชจ๋ ๋ค์ ๊ตฐ, ์ฆ 5๊ตฐ์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค์ ์์ ๊ณผ์ ์ฐจ์ด๊ฐ ๋๋ค. ๊ทธ๋ฆผ์ ํตํด ๋ ์์ธํ๊ฒ ์ดํดํ์!
ํ์๊ตฐ์ผ ๋๋ ์ง์๊ตฐ์ผ ๋์ ๋ถ๋ชจ, ๋ถ์์๋ง ๋ค๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค. ๋!
๐ ๋ด ์ฝ๋(C++)
// [1193] ๋ถ์์ฐพ๊ธฐ
// https://www.acmicpc.net/problem/1193
#include <iostream>
using namespace std;
int main(void)
{
int x, denominator, numerator;
cin >> x;
for (int i = 1;; i++) {
if ((1 + i*(i - 1) / 2 <= x) && (x < 1 + i*(i + 1) / 2)) {
// ์ง์ ๊ตฐ
if (i % 2 == 0) {
numerator = 1 + x - (1 + i * (i - 1) / 2); // ๋ถ์
denominator = 1 + i * (i + 1) / 2 - x; // ๋ถ๋ชจ
}
// ํ์ ๊ตฐ
else {
numerator = 1 + i * (i + 1) / 2 - x;
denominator = 1 + x - (1 + i * (i - 1) / 2);
}
break;
}
}
cout << numerator << "/" << denominator << endl;
}
'Baekjoon > ์ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2292] ๋ฒ์ง(C/C++) (0) | 2020.03.30 |
---|---|
[1094] ๋ง๋๊ธฐ (0) | 2020.03.01 |
[1475] ๋ฐฉ ๋ฒํธ (0) | 2020.02.09 |
[1085] ์ง์ฌ๊ฐํ์์ ํ์ถ (0) | 2020.02.08 |
[2839] ์คํ ๋ฐฐ๋ฌ (0) | 2020.02.08 |