スポーツウェア

1750 ワード

提问链接


Code


初めて

def solution(n, lost, reserve):
    student = []
    for i in range(1, n+1):
        if i not in lost:
            student.append(i)
    for i in range(len(lost)):
        if lost[i]-1 in reserve:
            student.append(lost[i])
            reserve.pop(reserve.index(lost[i]-1))
        elif lost[i]+1 in reserve:
            student.append(lost[i])
            reserve.pop(reserve.index(lost[i]+1))
        print(student)
    return len(student)

最終的な答え

def get_student_list(n, lost, reserve):
    """ 체육복을 이미 가지고 있는 학생의 List """
    student = []
    for i in range(1, n+1):
        if i not in lost:
            student.append(i)
        else:
            if i in reserve:
                student.append(i)
                reserve.pop(reserve.index(i))
                lost.pop(lost.index(i))
                
    return student

def solution(n, lost, reserve):
    student = get_student_list(n, lost, reserve)
    for l in lost:
        if l-1 in reserve:
            student.append(l)
            reserve.pop(reserve.index(l-1))
        elif l+1 in reserve:
            student.append(l)
            reserve.pop(reserve.index(l+1))
        print(student)
        
    return len(student)

困難事項


  • コードがきれいに伸びていないので、いくつかの関数に分けて処理したいと思っていました.見た目はいいですが、もっと面倒な感じがします.

  • 次の文のため、第1ラウンドでコードを追加しました.
    複数の運動服を持ってきた学生は、運動服が盗まれたのかもしれない.このとき、この学生は1枚の運動服だけが盗まれたと仮定し、1枚の運動服しか残っていないため、他の学生に運動服を貸すことができない.

  • 問題は解決したものの、なぜ解決したのかまだ完全に理解できない.ううう