๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

[๋ฐฑ์ค€] 1789๋ฒˆ ์ˆ˜๋“ค์˜ ํ•ฉ (Python)

mallin 2024. 7. 23. 18:16

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

 

๐Ÿ“Œ ๋ฌธ์ œ

์„œ๋กœ ๋‹ค๋ฅธ N๊ฐœ์˜ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์ด S๋ผ๊ณ  ํ•œ๋‹ค. S๋ฅผ ์•Œ ๋•Œ, ์ž์—ฐ์ˆ˜ N์˜ ์ตœ๋Œ“๊ฐ’์€ ์–ผ๋งˆ์ผ๊นŒ?

 

๐Ÿ“Œ ์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ S(1 ≤ S ≤ 4,294,967,295)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

 

 

๐Ÿ“Œ ์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N์˜ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 


๐Ÿ“Œ ํ’€์ด ๋ฐฉ์‹ 

์„œ๋กœ ๋‹ค๋ฅธ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 1๋ถ€ํ„ฐ ์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€์‹œ์ผœ๊ฐ€๋ฉด์„œ S๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋”ํ•ด์ฃผ๊ณ , ๋ช‡ ๊ฐœ์˜ ์ˆ˜๋ฅผ ๋”ํ–ˆ๋Š”์ง€๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

S = 200 ์ธ ๊ฒฝ์šฐ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 10 (์ค‘๋ณต ์ˆ˜) ์ž„์œผ๋กœ ์ด 19๊ฐœ๊ฐ€ ๋œ๋‹ค

 

 


๐Ÿ“Œ ์ฝ”๋“œ

s = int(input())
n = 0
total = 0

while s >= total:
    n += 1
    total += n

print(n - 1)

 

๋งˆ์ง€๋ง‰ ๊ฐ’์ด ์ค‘๋ณต๊ฐ’์ธ ๊ฒฝ์šฐ๋ฅผ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด์„œ s ๊ฐ€ total ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๊ฒฝ์šฐ๊นŒ์ง€ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์ฃผ๊ณ  ๊ฒฐ๊ณผ๊ฐ’์—์„œ -1 ์„ ํ•ด์„œ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

 

๊ฒฐ๊ณผ๊ฐ’์—์„œ n - 1 ์„ ์ถœ๋ ฅํ•˜๋Š” ์ด์œ ๋Š” ์ค‘๋ณต๊ฐ’์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ฉ์ž…๋‹ˆ๋‹ค

 

์ด ๋‘๊ฐ€์ง€์˜ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์ฃผ์‹œ๋ฉด ๋˜๋Š”๋ฐ์š”.

1๏ธโƒฃ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด ์ค‘๋ณต๊ฐ’์ธ ๊ฒฝ์šฐ

์ตœ๋Œ“๊ฐ’๊นŒ์ง€ ๋”ํ•ด๋„ s ๊ฐ€ ์•ˆ๋„˜๋‹ค๊ฐ€ ์ตœ๋Œ“๊ฐ’ + 1 ์„ ๋”ํ•˜๋Š” ์ˆœ๊ฐ„ s ๊ฐ€ ๋„˜์Šต๋‹ˆ๋‹ค. 

์ด๋•Œ ์ตœ๋Œ“๊ฐ’ + 1 ์€ ์ค‘๋ณต์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— n - 1 ์„ ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

 

2๏ธโƒฃ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด ์ค‘๋ณต๊ฐ’์ด ์•„๋‹Œ ๊ฒฝ์šฐ 

์ตœ๋Œ“๊ฐ’๊นŒ์ง€ ๋”ํ•˜๋ฉด s ๋ž‘ ๊ฐ™์€ ๊ฐ’์ด ๋˜๋Š”๋ฐ, 1๋ฒˆ์˜ ๊ฒฝ์šฐ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด์•ผ ํ•˜๋ฏ€๋กœ ์ตœ๋Œ“๊ฐ’ + 1 ๊นŒ์ง€ ๋”ํ•˜๊ณ  n -1 ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.