๐กsolutions )
๐ฌ ํ์ด์ฌ์ ๋ฐ์ฌ๋ฆผ round( ) ํจ์๋ฅผ ์ฌ์ฉํด์ ๊ทธ ๋ค์ ๋ผ์ด๋ ์ง์ถ ์ ๋ถ์ฌ๋ฐ๋ ์ซ์ ๋ฒํธ๋ฅผ ๊ตฌํด๋ด๋ ๋ก์ง.
๐ฌ ์ด๋ ์ฃผ์ํด์ผ ํ ์ ์ ๋ฐ์ฌ๋ฆผํ ์๋ฆฌ์ ์์๋ฆฌ ์ซ์๊ฐ ์ง์์ด๋ ํ์์ด๋์ ๋ฐ๋ผ ๋ฐ์ฌ๋ฆผํ ๊ฐ์ด ๋ฌ๋ผ์ง๋ค๋ ์ ์ด๋ค. ๋ฐ๋ผ์ ์์๋ฆฌ ์ซ์๊ฐ ์ง์์ธ ๊ฒฝ์ฐ๋ ๋ฐ์ฌ๋ฆผํ ๊ฐ์ +1์ฉ ๋ํด์ค๋ค.
๐ฌ ์๋ ํ์ด์ฌ์ ๋ฐ์ฌ๋ฆผ ๊ท์น์ ์ฐธ๊ณ ํ์.
๐ถ ํ์ด์ฌ์ round()ํจ์๋ ์ฌ์ฌ์ค์ ์์น์ ๋ฐ๋ฅธ๋ค. ๋ฐ์ฌ๋ฆผ ์๋ฆฌ์ ์๊ฐ 5์ผ ๋ |
๐ซcode )
def solution(n, a, b):
answer = 0
while a != b:
answer += 1
r_a, r_b = round(a / 2), round(b / 2)
if r_a < (a / 2): # ๋ฐ์ฌ๋ฆผํ ์๋ฆฌ์ ์์๋ฆฌ๊ฐ ์ง์์ธ ๊ฒฝ์ฐ
a = r_a + 1
else:
a = r_a
if r_b < (b / 2): # ๋ฐ์ฌ๋ฆผํ ์๋ฆฌ์ ์์๋ฆฌ๊ฐ ์ง์์ธ ๊ฒฝ์ฐ
b = r_b + 1
else:
b = r_b
return answer
๐ description )
๋ฌธ์ ์ถ์ฒ : programmers.co.kr/learn/courses/30/lessons/12985?language=python3
๋ฌธ์ ์ค๋ช โณโณ ๊ฒ์๋ํ๊ฐ ๊ฐ์ต๋์์ต๋๋ค. ์ด ๋ํ๋ N๋ช ์ด ์ฐธ๊ฐํ๊ณ , ํ ๋๋จผํธ ํ์์ผ๋ก ์งํ๋ฉ๋๋ค. N๋ช ์ ์ฐธ๊ฐ์๋ ๊ฐ๊ฐ 1๋ถํฐ N๋ฒ์ ์ฐจ๋ก๋๋ก ๋ฐฐ์ ๋ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ , 1๋ฒ↔2๋ฒ, 3๋ฒ↔4๋ฒ, ... , N-1๋ฒ↔N๋ฒ์ ์ฐธ๊ฐ์๋ผ๋ฆฌ ๊ฒ์์ ์งํํฉ๋๋ค. ๊ฐ ๊ฒ์์์ ์ด๊ธด ์ฌ๋์ ๋ค์ ๋ผ์ด๋์ ์ง์ถํ ์ ์์ต๋๋ค. ์ด๋, ๋ค์ ๋ผ์ด๋์ ์ง์ถํ ์ฐธ๊ฐ์์ ๋ฒํธ๋ ๋ค์ 1๋ฒ๋ถํฐ N/2๋ฒ์ ์ฐจ๋ก๋๋ก ๋ฐฐ์ ๋ฐ์ต๋๋ค. ๋ง์ฝ 1๋ฒ↔2๋ฒ ๋ผ๋ฆฌ ๊ฒจ๋ฃจ๋ ๊ฒ์์์ 2๋ฒ์ด ์น๋ฆฌํ๋ค๋ฉด ๋ค์ ๋ผ์ด๋์์ 1๋ฒ์ ๋ถ์ฌ๋ฐ๊ณ , 3๋ฒ↔4๋ฒ์์ ๊ฒจ๋ฃจ๋ ๊ฒ์์์ 3๋ฒ์ด ์น๋ฆฌํ๋ค๋ฉด ๋ค์ ๋ผ์ด๋์์ 2๋ฒ์ ๋ถ์ฌ๋ฐ๊ฒ ๋ฉ๋๋ค. ๊ฒ์์ ์ต์ข ํ ๋ช ์ด ๋จ์ ๋๊น์ง ์งํ๋ฉ๋๋ค. ์ด๋, ์ฒ์ ๋ผ์ด๋์์ A๋ฒ์ ๊ฐ์ง ์ฐธ๊ฐ์๋ ๊ฒฝ์์๋ก ์๊ฐํ๋ B๋ฒ ์ฐธ๊ฐ์์ ๋ช ๋ฒ์งธ ๋ผ์ด๋์์ ๋ง๋๋์ง ๊ถ๊ธํด์ก์ต๋๋ค. ๊ฒ์ ์ฐธ๊ฐ์ ์ N, ์ฐธ๊ฐ์ ๋ฒํธ A, ๊ฒฝ์์ ๋ฒํธ B๊ฐ ํจ์ solution์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฒ์ ๋ผ์ด๋์์ A๋ฒ์ ๊ฐ์ง ์ฐธ๊ฐ์๋ ๊ฒฝ์์๋ก ์๊ฐํ๋ B๋ฒ ์ฐธ๊ฐ์์ ๋ช ๋ฒ์งธ ๋ผ์ด๋์์ ๋ง๋๋์ง return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋จ, A๋ฒ ์ฐธ๊ฐ์์ B๋ฒ ์ฐธ๊ฐ์๋ ์๋ก ๋ถ๊ฒ ๋๊ธฐ ์ ๊น์ง ํญ์ ์ด๊ธด๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
|