https://www.acmicpc.net/problem/1011
๋๋์ด.. ๋จ๊ณ๋ณ ๋ฌธ์ ํ์ด "์ํ" ๋จ๊ณ ๋!!!!!!!
์ผ๋ง๋ ๊ดด๋ก์ ๋๊ฐ....
๋ฐ๋ณต๋ฌธ๋ง ์ฐ๋ฉด ์๊ฐ์ด๊ณผ ๋๋ ๋ฌธ์ ๋ค ์งํฉ์ด์์
๋งค์ฐ ๊ดด๋ก์์ ๋ฌธ์ ์๋ ์ ์์๋ ๋ถ๊ณผํ๊ณ ์์ฒญ ์ค๋๊ฑธ๋ ธ๋ค ใ ใ
์์ฃผ.. ์ง์ฆ๋ฌ๋ค..
์์ ๋ง..
๊ธฐ๋ณธ์ํ 1 ์ด์๋ค
๊ธฐ๋ณธ์ํ 2 ๋ ์๋ค๋๊ฑฐ์์
์ซ์ด.....
๋ฌธ์
์ฐํ์ด๋ ์ด๋ฆฐ ์์ , ์ง๊ตฌ ์ธ์ ๋ค๋ฅธ ํ์ฑ์์๋ ์ธ๋ฅ๋ค์ด ์ด์๊ฐ ์ ์๋ ๋ฏธ๋๊ฐ ์ค๋ฆฌ๋ผ ๋ฏฟ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฐ ์ง๊ตฌ๋ผ๋ ์ธ์์ ๋ฐ์ ๋ด๋ ค ๋์ ์ง 23๋ ์ด ์ง๋ ์ง๊ธ, ์ธ๊ณ ์ต์ฐ์ ASNA ์ฐ์ฃผ ๋นํ์ฌ๊ฐ ๋์ด ์๋ก์ด ์ธ๊ณ์ ๋ฐ์ ๋ด๋ ค ๋๋ ์๊ด์ ์๊ฐ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค.
๊ทธ๊ฐ ํ์นํ๊ฒ ๋ ์ฐ์ฃผ์ ์ Alpha Centauri๋ผ๋ ์๋ก์ด ์ธ๋ฅ์ ๋ณด๊ธ์๋ฆฌ๋ฅผ ๊ฐ์ฒํ๊ธฐ ์ํ ๋๊ท๋ชจ ์ํ ์ ์ง ์์คํ ์ ํ์ฌํ๊ณ ์๊ธฐ ๋๋ฌธ์, ๊ทธ ํฌ๊ธฐ์ ์ง๋์ด ์์ฒญ๋ ์ด์ ๋ก ์ต์ ๊ธฐ์ ๋ ฅ์ ์ด ๋์ํ์ฌ ๊ฐ๋ฐํ ๊ณต๊ฐ์ด๋ ์ฅ์น๋ฅผ ํ์ฌํ์๋ค. ํ์ง๋ง ์ด ๊ณต๊ฐ์ด๋ ์ฅ์น๋ ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธ๊ฒฉํ๊ฒ ๋๋ฆด ๊ฒฝ์ฐ ๊ธฐ๊ณ์ ์ฌ๊ฐํ ๊ฒฐํจ์ด ๋ฐ์ํ๋ ๋จ์ ์ด ์์ด์, ์ด์ ์๋์๊ธฐ์ k๊ด๋ ์ ์ด๋ํ์์ ๋๋ k-1 , k ํน์ k+1 ๊ด๋ ๋ง์ ๋ค์ ์ด๋ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์ด ์ฅ์น๋ฅผ ์ฒ์ ์๋์ํฌ ๊ฒฝ์ฐ -1 , 0 , 1 ๊ด๋ ์ ์ด๋ก ์ ์ด๋ํ ์ ์์ผ๋ ์ฌ์ค์ ์์ ํน์ 0 ๊ฑฐ๋ฆฌ๋งํผ์ ์ด๋์ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก 1 ๊ด๋ ์ ์ด๋ํ ์ ์์ผ๋ฉฐ, ๊ทธ ๋ค์์๋ 0 , 1 , 2 ๊ด๋ ์ ์ด๋ํ ์ ์๋ ๊ฒ์ด๋ค. ( ์ฌ๊ธฐ์ ๋ค์ 2๊ด๋ ์ ์ด๋ํ๋ค๋ฉด ๋ค์ ์๊ธฐ์ 1, 2, 3 ๊ด๋ ์ ์ด๋ํ ์ ์๋ค. )
๊น์ฐํ์ ๊ณต๊ฐ์ด๋ ์ฅ์น ์๋์์ ์๋์ง ์๋ชจ๊ฐ ํฌ๋ค๋ ์ ์ ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ x์ง์ ์์ y์ง์ ์ ํฅํด ์ต์ํ์ ์๋ ํ์๋ก ์ด๋ํ๋ ค ํ๋ค. ํ์ง๋ง y์ง์ ์ ๋์ฐฉํด์๋ ๊ณต๊ฐ ์ด๋์ฅ์น์ ์์ ์ฑ์ ์ํ์ฌ y์ง์ ์ ๋์ฐฉํ๊ธฐ ๋ฐ๋ก ์ง์ ์ ์ด๋๊ฑฐ๋ฆฌ๋ ๋ฐ๋์ 1๊ด๋ ์ผ๋ก ํ๋ ค ํ๋ค.
๊น์ฐํ์ ์ํด x์ง์ ๋ถํฐ ์ ํํ y์ง์ ์ผ๋ก ์ด๋ํ๋๋ฐ ํ์ํ ๊ณต๊ฐ ์ด๋ ์ฅ์น ์๋ ํ์์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์ ๋ ฅ
์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ํ์ฌ ์์น x ์ ๋ชฉํ ์์น y ๊ฐ ์ ์๋ก ์ฃผ์ด์ง๋ฉฐ, x๋ ํญ์ y๋ณด๋ค ์์ ๊ฐ์ ๊ฐ๋๋ค. (0 ≤ x < y < 231)
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด x์ง์ ์ผ๋ก๋ถํฐ y์ง์ ๊น์ง ์ ํํ ๋๋ฌํ๋๋ฐ ํ์ํ ์ต์ํ์ ๊ณต๊ฐ์ด๋ ์ฅ์น ์๋ ํ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ํ์ฐฉ์ค
๊ท์น์ด ์ ํ ๋ณด์ด์ง ์์์ ์ด~์ง ํํธ๋ฅผ ์ป์ ๋ค์
๊ทธ๋ฅ ๋ฌด์์ ๋ ธ๊ฐ๋ค๋ก ์จ๋๊ฐ๋ค
๊ฝค๋ ๋ง์๊ฑธ ์ ์ ํ์ ๊ท์น์ ์ฐพ์๋ค
์ ๊ณฑ์์์ ํ๋จ๊ณ ์ถ๊ฐ ๋๊ณ
์ ๋จ๊ณ ์ ๊ณฑ์์ ๋ค์๋จ๊ณ ์ ๊ณฑ์์ ์ค๊ฐ๊ฐ์์ ํ๋จ๊ณ๊ฐ ์ถ๊ฐ๋๋ค
์ด๋ ์ ๋จ๊ณ์ ๊ณฑ์์๋ค์๋จ๊ณ์ ๊ณฑ์์์ค๊ฐ๊ฐ ์ ์ ๋จ๊ณ ์ ๊ณฑ์ + ์ ๋จ๊ณ ์ ๊ณฑ์์ ์ ๊ณฑ๊ทผ ์ผ๋ก ๊ตฌํ ์ ์๋๋ฐ..
์ด๊ฒ ์ฐธ ๊ธ๋ก ํํํ๊ธฐ๊ฐ ์ด๋ ต๋ค
ํ์ด1 : ์๊ฐ์ด๊ณผ
๋๋ฆ... ๊ท์น์ด์ฌํ ์จ์ ์ด์ฌํ ํ์๋๋ฐ..
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double t, x, y, d, cnt;
cin >> t;
while(t--){
cin >> x >> y;
d = y - x;
cnt = 1;
for(double i=1; i<=d; i++){
//i๊ฐ ์ ๊ณฑ์๋ฉด ์ฆ๊ฐ
if((int)sqrt(i) == sqrt(i))
cnt++;
//i๊ฐ ์ ๋จ๊ณ ์ ๊ณฑ์์ ๋ค์๋จ๊ณ ์ ๊ณฑ์์ ์ฌ์ด์ ์์ผ๋ฉด ์ฆ๊ฐ
if(i == (int)sqrt(i)*(int)sqrt(i) + (int)sqrt(i))
cnt++;
}
cout << cnt << "\n";
}
return 0;
}
https://www.acmicpc.net/board/view/26059
๋ด ์ฝ๋๋ ์ ๊ธ์ ๋์์๋ ์๋ชป๋ ์์์ ์ ํ์ด์๋ค
์๊ฐ๋ณต์ก๋๊ฐ O(y-x)๊ฐ ๋์ค๋๋ฐ..
๋ฌธ์ ๋ ๋ฒ์๊ฐ 2^31 ์น ๊น์ง ์์
O(2^31) ? ์ด๋ฆผ๋ ์๋ค
๊ทธ๋ฆฌํ์ฌ..
ํ์ด 2 : ๋ง์์ต๋๋ค!
์ด์ฌํ ๋ค์ํ์์ง ๋ญ..
๋ด๊ฐ ์์๋ธ ๊ท์น์ ๋ฒ๋ฆฌ๊ณ ์ถ์ง๋ ์์๋ค
๋ฐ๋ณต๋ฌธ ๋์ ๊ฑฐ๋ฆฌ์์ ๋ฐ๋ก ๊ณ์ฐํ๋ ๋ฐฉ์์ผ๋ก ์ด์ง ๋ฐ๊ฟจ๋ค
์ ๊ณฑ๊ทผ*2 - 1 ์ด๋ผ๋ ๋น๊ต์ ๊ฐ๋จํ ๋ต์ ๊ตฌํ ์ ์์๊ณ
๊ทธ ์ค๊ฐ๊ฐ๋ณด๋ค ์์์ง ํฐ์ง์ ๋ฐ๋ผ +1 +2 ๋ฅผ ํด์ฃผ๋ฉด ๋๋๋ผ
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int t, x, y, d, cnt, tmp;
cin >> t;
while(t--){
cin >> x >> y;
d = y - x;
tmp = (int)sqrt(d);
//์ ๊ณฑ์๋ผ๋ฉด
if (d == tmp*tmp)
cnt = tmp*2 - 1;
//์ ๋จ๊ณ ์ ๊ณฑ์ ~ ๋ค์๋จ๊ณ ์ ๊ณฑ์์ ์ ๋จ๊ณ ์ ๊ณฑ์์ ์ค๊ฐ๊ฐ ์ฌ์ด
else if (d <= tmp*tmp + tmp)
cnt = tmp*2;
//๋ค์๋จ๊ณ์ ์ ๊ณฑ์์ ์ ๋จ๊ณ ์ ๊ณฑ์์ ์ค๊ฐ๊ฐ ~ ๋ค์๋จ๊ณ ์ ๊ณฑ์ ์ฌ์ด
else
cnt = tmp*2 + 1;
cout << cnt << "\n";
}
return 0;
}
'๐ Cpp > [BOJ] ๋จ๊ณ๋ณ๋ก ํ์ด๋ณด๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 10813๋ฒ: ๊ณต ๋ฐ๊พธ๊ธฐ (Bronze II) (0) | 2024.12.16 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 10810๋ฒ: ๊ณต ๋ฃ๊ธฐ (Bronze III) (0) | 2024.11.29 |
[BOJ][C++] ๋ฐฑ์ค 10757๋ฒ : ํฐ ์ A+B (15353๋ฒ) (0) | 2021.10.22 |
[BOJ][C++] ๋ฐฑ์ค 2839๋ฒ : ์คํ ๋ฐฐ๋ฌ (0) | 2021.10.21 |
[BOJ][C++] ๋ฐฑ์ค 2775๋ฒ : ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ (0) | 2021.10.20 |