๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Developer/๐ŸŸ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/python] ์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ

๋ฌธ์ œ ์„ค๋ช…

โ–ณโ–ณ ๊ฒŒ์ž„๋Œ€ํšŒ๊ฐ€ ๊ฐœ์ตœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋Œ€ํšŒ๋Š” 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๋ฒˆ ์ฐธ๊ฐ€์ž๋Š” ์„œ๋กœ ๋ถ™๊ฒŒ ๋˜๊ธฐ ์ „๊นŒ์ง€ ํ•ญ์ƒ ์ด๊ธด๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

 


ํ’€์ด

 

def solution(n, a, b):

    answer = 1
    while 1:
        if (a % 2 == 0 and a - 1 == b) or (a % 2 != 0 and a + 1 == b):
            return answer
        
        a = ton(a)
        b = ton(b)
            
        answer += 1

        

def ton(x):
    if x % 2 == 0:
        return int(x / 2)
    else :
        return int((x / 2) + 1)