๋ฌธ์
11561๋ฒ: ์ง๊ฒ๋ค๋ฆฌ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ํ ์ค์ ์นํ์ด๊ฐ ๋ฐ์ ์ ์๋ ์ต๋ ์ง๊ฒ๋ค๋ฆฌ ์๋ฅผ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
์ฝ๋
#include <iostream>
#include <cmath>
#define ll unsigned long long int
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int T; cin>>T;
while(T--){
ll n; cin>>n;
ll start = 1, end = 1e16;
ll ans = 0;
while(start <= end){
ll mid = (start + end) / 2;
if(mid * (mid+1) <= 2*n){
ans = max(ans, mid);
start = mid+1;
}
else end = mid - 1;
}
cout<<ans<<'\n';
}
}
ํ์ด
์ด๋ถ ํ์ ๋ฌธ์ ์ ๋๋ค.
- ์ฒซ ์ง๊ฒ๋ค๋ฆฌ๋ ์ ํํด์ ์๋ฌด๊ฒ์ด๋ ๋ฐ์ ์ ์๋ค. ์ด ์ ํ๊ฐ ์ฒซ ์ ํ์ด๋ค.
- ๋ ๋ฒ์งธ ์ ํ๋ถํฐ๋ ์ด์ ์ ์ ํํ ๊ฑฐ๋ฆฌ๋ณด๋ค 1 ์ด์ ๋ ๊ธด ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐ์ด์ผ๋ง ํ๋ค.
- N๋ฒ ์ง๊ฒ๋ค๋ฆฌ๋ ๋ฐ๋์ ๋ฐ์์ผ ํ๋ค.
- N๋ฒ ์ง๊ฒ๋ค๋ฆฌ๋ฅผ ๋ฐ์ ํ ๊ฐ ๊ฑด๋๋ก ์ด๋ํ ๋ ์ ํ๋ฅผ ํ์ง ์์ผ๋ฏ๋ก ์์ ๊ท์น์ด ์ ์ฉ๋์ง ์๋๋ค.
๋ค์ ์กฐ๊ฑด์ ์ด์ฉํด์ N๋ฒ๊น์ง์ ์ง๊ฒ๋ค๋ฆฌ๊ฐ ์์ ๋ ๋ฐ์ ์ ์๋ ์ง๊ฒ๋ค๋ฆฌ์ ์ต๋ ์๋ ์ ์๊ฐํด๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
1 + 2 + 3 + 4 + 5 + ..... (N-2) + (N-1) + N
์ ์์ ๋ฑ์ฐจ์์ด๋ก์จ (N * (N+1)) / 2๋ก ํํํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ 1 ~ 10^16 ๊น์ง์ ์์ค ํ๋๋ฅผ ์ด๋ถ ํ์์ผ๋ก ์ ํํ์ ๋ ํด๋น ๊ฐ์ ๋ฑ์ฐจ์์ด์ ํฉ์ด N๋ณด๋ค ์์ ๋์ ์ต๋๊ฐ์ ์ฐพ์์ ์ถ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 2792๋ฒ - ๋ณด์ ์์ (0) | 2022.09.08 |
---|---|
[๋ฐฑ์ค,c++] 6236๋ฒ - ์ฉ๋ ๊ด๋ฆฌ (0) | 2022.09.08 |
[๋ฐฑ์ค,c++] 20040๋ฒ - ์ฌ์ดํด ๊ฒ์ (0) | 2022.09.07 |
[๋ฐฑ์ค,c++] 11663๋ฒ - ์ ๋ถ ์์ ์ (0) | 2022.09.06 |
[๋ฐฑ์ค,c++] 17136๋ฒ - ์์ข ์ด ๋ถ์ด๊ธฐ (0) | 2022.09.06 |
[๋ฐฑ์ค,c++] 2533๋ฒ - ์ฌํ๋ง ์๋น์ค(SNS) (0) | 2022.09.04 |
๋๊ธ