2ํ•™๋…„ 2ํ•™๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ์ œ_2์ฃผ์ฐจ(๋ฐฑ์ค€_1011๋ฒˆ:Fly me to the Alpha Centauri)

2024. 9. 30. 15:43ใ†Algorithm ( p & swlug )/Baekjoon

 

๐Ÿ“Œ ๊ณผ์ œ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์ง€์ ๊นŒ์ง€ ์ •ํ™•ํžˆ ๋„๋‹ฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๊ณต๊ฐ„์ด๋™ ์žฅ์น˜ ์ž‘๋™ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

 

๐Ÿ“Œ  ์ฝ”๋“œ & ์ฝ”๋“œ ๋ถ„์„

 

ํ•ด๋‹น๋ฌธ์ œ๋Š” ๋ฐฐ์ถ”๋ฌธ์ œ๋ณด๋‹ค๋„ ๊ณผ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ, ์ง„์ „์ด ์—†์–ด์„œ, ์ฐจ๋ผ๋ฆฌ ์ฝ”๋“œ๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด๋Š” ๊ฒƒ์œผ๋กœ ํ’€์ด ๊ณผ์ œ๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

T = int(input()) 

for i in range(T):
  x, y = map(int, input().split()) #์ถœ๋ฐœ ๋ฐ ๋„์ฐฉ ์ง€์ 

  d = y - x #๊ฑฐ๋ฆฌ

  n = 0

  while True:
    if d <= n*(n+1):
      break
    n += 1
  
#์ด ์ด๋™ ๊ฑฐ๋ฆฌ๊ฐ€ n์˜ ์ œ๊ณฑ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ
  if d <= n**2:
    print(n*2-1)
 
#์ด ์ด๋™ ๊ฑฐ๋ฆฌ๊ฐ€ n์˜ ์ œ๊ณฑ๋ณด๋‹ค ํด ๋•Œ
  else:
    print(n*2)

 

์ฝ”๋“œ๋Š” ์ด์™€ ๊ฐ™๊ณ , ์•„๋ž˜๋Š” ํ’€์ด์— ๊ด€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ด๋‹ค.

 

1) ์ด๋™์‹œ ๋ฌด์กฐ๊ฑด ์ „์— ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ์™€ ๊ฐ™๊ฑฐ๋‚˜, 1์”ฉ ๋” ํฌ๊ฑฐ๋‚˜ ์ž‘๊ฑฐ๋‚˜๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฒ˜์Œ์— 1์„ ์ด๋™ํ–ˆ์œผ๋ฉด ๋‹ค์Œ ๊ฑฐ๋ฆฌ๋Š” 2 ํ˜น์€ 1, ์•„๋‹ˆ๋ฉด 0์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

(ํ•˜์ง€๋งŒ 0๋งŒํผ ์ด๋™์€ ๋ฌด์˜๋ฏธ ํ•˜๋ฏ€๋กœ ํ•˜์ง€์•Š์•„๋„ ๋œ๋‹ค.)

 

2) ๊ฑฐ๋ฆฌ = (๋„์ฐฉ์ง€์ ) - (์ถœ๋ฐœ์ง€์ ) 

-> ๊ฑฐ๋ฆฌ = y - x

 

3) ์ฒ˜์Œ ์ด๋™ํ•  ๋•Œ์™€ ๋งˆ์ง€๋ง‰ ๋„์ฐฉ ์ง€์ ๊นŒ์ง€์˜ ์ด๋™์€ ๋ฌด์กฐ๊ฑด 1์ด๋‹ค.

 ์˜ˆ) ๊ฑฐ๋ฆฌ๊ฐ€ 8์ผ๋•Œ

10์—์„œ ์‹œ์ž‘์„ ํ•˜๋ฉด, ๋„์ฐฉ์€ 18์ด๊ณ , ์ฒ˜์Œ์ด๋™๊ฑฐ๋ฆฌ๋Š” ๋ฌด์กฐ๊ฑด 1์ด๊ณ  ๋งˆ์ง€๋ง‰ ๋„์ฐฉ ์ง€์ ๊นŒ์ง€์˜ ์ด๋™๊ฑฐ๋ฆฌ๋„ ๋ฌด์กฐ๊ฑด 1์ด๋‹ค.

 

 

์ด ์ด๋™ํ•ด์•ผ๋  ๊ฑฐ๋ฆฌ ์ด๋™ ๊ฑฐ๋ฆฌ ๊ณต๊ฐ„์ด๋™ ์ž‘๋™ ํšŸ์ˆ˜
1 1 1
2 11 2
3 111 3
4 121 3
5 1211 4
6 1221 4
7 12211 5
8 12221 5
9 12321 5

 

10 123211 6
11 123221 6
12 123321 6
13 1233211 7
14 1233221 7
15 1233321 7
16 1234321 7
17 12343211 8
18 12343221 8

 

๊ทœ์น™์„ ์ฐพ์•„๋ณด๋ฉด, 

๋”๋ณด๊ธฐ

1๊ณผ 2๋Š” ๋ฐ˜๋ณต์„ 1๋ฒˆ

3๊ณผ 4๋Š” ๋ฐ˜๋ณต์„ 2๋ฒˆ

5์™€ 6์€ ๋ฐ˜๋ณต์„ 3๋ฒˆ

7๊ณผ 8์€ ๋ฐ˜๋ณต์„ 4๋ฒˆ

 

์ด๋Ÿฌํ•œ ๊ทœ์น™์œผ๋กœ ๊ทธ๋‹ค์Œ ์ˆซ์ž๋“ค์€ ์•„๋งˆ๋„ 9, 9, 9, 9, 9, 10, 10, 10, 10, 10 (9๊ฐ€ 5๋ฒˆ, 10๋„ 5๋ฒˆ ๋ฐ˜๋ณต)... ... ์ด๋ผ๋Š” ๊ฒƒ์„ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋˜ํ•œ ๊ฒฝ๊ณ„์„ ์— ์žˆ๋Š” ์ˆซ์ž๋“ค์€ ๊ทธ ์ „์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ๋ชจ๋‘ ํ•ฉํ•œ ์ˆซ์ž์™€ ๊ฐ™์•˜๋‹ค.

 

 ์ด๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด์„œ ๊ณต๊ฐ„์ด๋™์˜ ์ž‘๋™ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฒƒ๋ผ๋ฆฌ ๋”ํ•˜๋ฉด 2*1, 2*2, 2*3 ... 2*n ์ด ๋‚˜์˜จ๋‹ค. ๊ทธ๋ฆฌ๊ณ , n์˜ ์ œ๊ณฑ์€ ๊ฒฝ๊ณ„์„ ์— ์žˆ๋Š” ์ˆซ์ž์™€ ๊ฐ™๋‹ค. 

 

 

 

๐Ÿ“Œ ๋Š๋‚€์ 

 

ํ•ด๋‹น๋ฌธ์ œ๋Š” ๋ฐฐ์ถ”๋ฌธ์ œ๋ณด๋‹ค๋„ ์ ‘๊ทผํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์› ๊ณ , ์–ด๋–ค์‹์œผ๋กœ ํ’€์–ด์•ผํ• ์ง€ ๊ฐ์ด ์˜ค์ง€์•Š์•˜๋‹ค..

๊ทธ๋ž˜์„œ ์ง„์ „์ด์—†๊ณ , ์–ด๋ ต๋‹ค๊ณ  ๋Š๊ปด์ ธ์„œ, ๋ฐ”๋กœ ํ’€์ด๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ํ•ด๊ฒฐํ•œ ๊ณผ์ œ์ธ๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ํ’€์ด๋ฅผ ๋ณด๋‹ˆ ๊ทœ์น™์„ ์ฐพ๋Š”๊ฒŒ 

๋งŽ์ด ์–ด๋ ต์ง€๋Š” ์•Š์€ ๊ฒƒ ๊ฐ™์•˜๋‹ค.

 

๊ทธ๋ž˜๋„,, ์—ด์‹ฌํžˆ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋˜ ๋ฌธ์ œ์ด๋‹ค. ํ™”์ดํŒ…..!

 

 

 

[์ฐธ๊ณ ํ•œ ์ž๋ฃŒ]

 

https://eunhee-programming.tistory.com/99

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„ - ๋ฐฑ์ค€ 1011๋ฒˆ ํ’€์ด/์ž์„ธํ•œ ํ’€์ด(ํŒŒ์ด์ฌ)

๋ฐฑ์ค€ 1011๋ฒˆ ๋ฌธ์ œ ์ฝ”๋“œ๋Š” ๋งจ ์•„๋ž˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1. ๋ฌธ์ œ 2. ํ’€์ด 3. ์ฝ”๋“œ ์ˆœ์ž…๋‹ˆ๋‹ค. ๋ฐฑ์ค€ 1011๋ฒˆ ๋ฌธ์ œ ํ’€๋Ÿฌ๊ฐ€๊ธฐ https://www.acmicpc.net/problem/1011 1011๋ฒˆ: Fly me to the Alpha Centauri ์šฐํ˜„์ด๋Š” ์–ด๋ฆฐ ์‹œ์ ˆ, ์ง€๊ตฌ ์™ธ์˜ ๋‹ค

eunhee-programming.tistory.com