์ฝ”๋”ฉํ…Œ์ŠคํŠธ/BOJ

[๋ฐฑ์ค€ 1011] Fly me to the Alpha Centauri (C++)

kite707 2021. 12. 2.

https://www.acmicpc.net/problem/1011

 

1011๋ฒˆ: Fly me to the Alpha Centauri

์šฐํ˜„์ด๋Š” ์–ด๋ฆฐ ์‹œ์ ˆ, ์ง€๊ตฌ ์™ธ์˜ ๋‹ค๋ฅธ ํ–‰์„ฑ์—์„œ๋„ ์ธ๋ฅ˜๋“ค์ด ์‚ด์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋ž˜๊ฐ€ ์˜ค๋ฆฌ๋ผ ๋ฏฟ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฐ€ ์ง€๊ตฌ๋ผ๋Š” ์„ธ์ƒ์— ๋ฐœ์„ ๋‚ด๋ ค ๋†“์€ ์ง€ 23๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ, ์„ธ๊ณ„ ์ตœ์—ฐ์†Œ ASNA ์šฐ์ฃผ ๋น„ํ–‰

www.acmicpc.net

 

 

 

์•„์ด๋””์–ด

๋งˆ์ง€๋ง‰์ด 1๋กœ ๋๋‚˜๋„๋ก ์ผ๋‹จ ๋‚˜์—ด์„ ํ•ด๋ดค๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค.

์ˆซ์ž ์‹ ํšŸ์ˆ˜
1 1 1
2 1+1 2
3 1+1+1 3
4 1+2+1 3
5 1+2+1+1 4
6 1+2+2+1 4
7 1+2+2+1+1 5
8 1+2+2+2+1 5
9 1+2+3+2+1 5
10 1+2+3+2+1+1 6
11 1+2+3+2+2+1 6
12 1+2+3+3+2+1 6
13 1+2+3+3+2+2+1 7
14 1+2+3+3+2+2+1 7
15 1+2+3+3+3+2+2+1 8
16 1+2+3+4+3+2+1 8

์ œ๊ณฑ์ˆ˜๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ˆซ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. (4์˜ ๊ฒฝ์šฐ 2 ๋“ฑ์žฅ, 9์˜ ๊ฒฝ์šฐ 3๋“ฑ์žฅ) ๊ทธ๋ฆฌ๊ณ  ์ œ๊ณฑ์ˆ˜์˜ ๊ฒฝ์šฐ 1+2+3+..n+n-1+n-2+...1 ์ฆ‰ ํšŸ์ˆ˜๋Š” ํ•ญ์ƒ ์ˆ˜์˜ ์ œ๊ณฑ๊ทผ +1์ด๋‹ค. (4์˜ ๊ฒฝ์šฐ ๋ฃจํŠธ4+1. ์ฆ‰ 3์ด๋‹ค.)

๊ทธ๋ฆฌ๊ณ  5 6 7 8์„ ๋ณด๋ฉด 56์˜๊ฒฝ์šฐ 4๋ฒˆ, 78์˜ 5๋ฒˆ์ธ๋ฐ 6์€ 2+4๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ์ฃผ๋ชฉํ•˜์ž.

๋น„์Šทํ•œ ์˜ˆ์‹œ๋กœ 9์™€ 16์‚ฌ์ด์—์„œ ํšŸ์ˆ˜๊ฐ€ ๋ฐ”๋€Œ๋Š” ๋ถ€๋ถ„์ธ 12์—ญ์‹œ 3+9์ด๋‹ค. ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

์ฝ”๋“œ

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;


int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T;
	long long a, b;
	cin >> T;
	while (T != 0) {
		cin >> a >> b;
		int go =(int)sqrt(b - a);

		if (b - a < 4) {
			cout << b - a<<"\n";
		}
		else {
        //์ œ๊ณฑ์ˆ˜์˜ ๊ฒฝ์šฐ ex)4
			if (b - a == go * go) {
				cout << 2 * go - 1 << "\n";
			}
            //๊ฑฐ๋ฆฌ+๊ฑฐ๋ฆฌ์˜ ์ œ๊ณฑ๊ทผ๋ณด๋‹ค ํด ๊ฒฝ์šฐ ex)7,8
			else if (go * go + go < b - a) {
				cout << go * 2 + 1 << "\n";
			}
            //๊ฑฐ๋ฆฌ+๊ฑฐ๋ฆฌ์˜ ์ œ๊ณฑ๊ทผ๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐex)5,6
			else {
				cout << go * 2 << "\n";
			}
		}

		T--;
	}
}

 

 

 

 

๋Œ“๊ธ€