[BOJ]送糖

6333 ワード

解題プロセス


下記の
  • 写真を参照してください
  • は一番左が+3、右が+5だと言っています.
    逆に,右端が+5,左端が+3と考えられる.
    前者は풀이코드 1、後者は풀이코드 2である.
  • 🤜 プールコード1(エラー)

    from math import ceil
    N=int(input())
    dp=[]
    dp.append([3,5])
    stat=0
    answer=0
    for i in range(N//5+1):
        arr=dp[i]
        new_arr=[]
        for a in arr:
            if arr.index(a)==0:
                new_arr.append(a+3)
                new_arr.append(a+5)
            else:
                new_arr.append(a+5)
        dp.append(new_arr)
    
    for d in dp:
        answer+=1
        if N in d:
            print(answer)
            stat=1
    if stat==0:
        print(-1)
    (与えられたテストケースはすべて実行されていますが、採点すると実行されないコードは、、、なぜでしょうか、、)

    🤜 プールコード2(正しい!)

    N=int(input())
    cnt=0
    
    while(N>0):
        if N%5==0:
            cnt+=N//5
            N-=(N//5)*5 # 그냥 N=0 이라는 뜻
        else:
            N-=3
            cnt+=1
        
    if N==0:
        print(cnt)
    else:
        print(-1)