์ ‘๊ทผ๋ฐฉ๋ฒ•) ๋‹ค์Œ ์ง‘์˜ ๊ด€์ ์—์„œ ๊ฐ๊ฐ ์ƒ‰๊น”์˜ ๋น„์šฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ตœ์†Œ ๋น„์šฉ์„ ๋น„๊ตํ•˜๋Š” ๊ด€์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

              ex) 2๋ฒˆ์งธ ์ง‘์˜ ํŒŒ๋ž€์ƒ‰, min(์ฒซ๋ฒˆ์งธ์ง‘์˜ ๋นจ๊ฐ• , ์ดˆ๋ก)

             ์ด๋ ‡๊ฒŒ ๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ฐ”ํ…€ ์—… ๋ฐฉ์‹์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌ์„ฑํ•˜์˜€๋‹ค.

 

์†Œ์Šค์ฝ”๋“œ

n = int(input())
d = [[0] * 3 for _ in range(n)]
min_list = [[0] * 3 for _ in range(n)]
for i in range(n):
    i1,i2,i3 = map(int,input().split())
    d[i][0] = i1
    d[i][1] = i2
    d[i][2] = i3

for i in range(n):
    if i ==0:
        min_list[i][0] = d[0][0]
        min_list[i][1] = d[0][1]
        min_list[i][2] = d[0][2]
    else:
        min_list[i][0] += d[i][0] + min(min_list[i-1][1],min_list[i-1][2])
        min_list[i][1] += d[i][1] + min(min_list[i-1][0],min_list[i-1][2])
        min_list[i][2] += d[i][2] + min(min_list[i-1][0],min_list[i-1][1])
        

print(min(min_list[n-1][0],min_list[n-1][1],min_list[n-1][2]))
----------------

์ฒ˜์Œ์—๋Š” ์ง‘,์ƒ‰๊น” ๋ฐฐ์—ด๊ณผ ๋˜‘๊ฐ™์€ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ๊ฐ๊ฐ์˜ ๋น„์šฉ์„ ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜์˜€๋‹ค.

ํ•˜์ง€๋งŒ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ๋ฐฐ์—ด์— ๋„ฃ์–ด๋„ ์ƒ๊ด€์ด ์—†์–ด์„œ ์•„๋ž˜ ์ฝ”๋“œ๋กœ ๋‹ค์‹œ ๊ตฌ์„ฑํ•˜์˜€๋‹ค.

    

n = int(input())
d = [[0] * 3 for _ in range(n)]

for i in range(n):
    i1,i2,i3 = map(int,input().split())
    d[i][0] = i1
    d[i][1] = i2
    d[i][2] = i3

for i in range(1,n):
        d[i][0] = d[i][0] + min(d[i-1][1],d[i-1][2])
        d[i][1] = d[i][1] + min(d[i-1][0],d[i-1][2])
        d[i][2] = d[i][2] + min(d[i-1][0],d[i-1][1])
        

print(min(d[n-1][0],d[n-1][1],d[n-1][2]))
    
    

์ ‘๊ทผ๋ฐฉ๋ฒ• ) ๋จผ์ € 3๊นŒ์ง€์˜ ํ•ฉ์€ ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š๊ธฐ์— ๋ฐฐ์—ด๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

              ๊ทธ ๋‹ค์Œ 4๋ถ€ํ„ฐ ํ•ฉ๋“ค์„ ๋‚˜์—ดํ•˜์˜€๋Š”๋ฐ ์•ž์ด 1์ด์˜ค๋Š” ๊ฒฝ์šฐ , 2๊ฐ€ ์˜ค๋Š”๊ฒฝ์šฐ , 3์ด์˜ค๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฒฝ์šฐ๋ฅผ ๋‚˜                ๋ˆ„์—ˆ๋‹ค.

              1+1+1+1

              1+2+1

              1+1+2

              1+3

              ์ด๋ ‡๊ฒŒ 1์˜ ๊ฒฝ์šฐ๋งŒ ์‚ดํŽด๋ณด๋ฉด 1 + 3์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๊ณง 1+d[2] ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ 2,3์˜ ๊ฒฝ

              ์šฐ๋„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐํ•˜์˜€๋”๋‹ˆ 7์˜ ๊ฐ€์ง“์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

              ๋”ฐ๋ผ์„œ ์ ํ™”์‹์€ d[i] = d[i-1]+ d[i-2]+d[i-3] ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

-----------------------

n = int(input())

d = [0] * 11
d[0] = 1
d[1] = 2
d[2] = 4
for _ in range(n):
    k = int(input())
    for i in range(3,k):
        d[i] = d[i-1] + d[i-2] + d[i-3]
    print(d[k-1])
   

   

์ ‘๊ทผ๋ฐฉ๋ฒ•

-๋ฐ”ํ…€ ์—… ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

 2 ,3 ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ง€ ํ™•์ธ ํ•œ ํ›„์— ์ด๋ฅผ -1 ์„ ํ•œ ๊ฒฝ์šฐ์™€ ๋น„๊ตํ•ด ๋” ์ž‘์€ ์ˆ˜๋ฅผ ๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ์—ˆ๋””.

 

n= int(input())
d= [0] * (n+1)
d[1]=0



for i in range(2,n+1):
    if i%2 ==0 and i%3==0:
        d[i] = min(d[i//2]+1,d[i//3]+1)
    elif i%2 ==0 and i%3 !=0:
        d[i] = d[i//2]+1
    elif i%3 ==0 and i%2 !=0:
        d[i] = d[i//3]+1
    else:
        d[i] = d[i-1]+1
    d[i] = min(d[i-1]+1,d[i])
    print(d[i])
   
       
print(d[n])

+ Recent posts