スポーツウェア


質問する



答え1(エラー)

def solution(n, lost, reserve):
    answer = n - len(lost)
    
    for i in lost:
        for j in reserve:
            if i==j:
                reserve.remove(j)
                lost.remove(i)
                answer += 1
                break
    
    for i in lost:
        for j in reserve:
            if j==i-1 or j==i+1:
                reserve.remove(j)
                answer += 1
                
    return answer
  • 試験は5回と7回で
  • に合格しなかった.
  • の問題でソートすれば解決でき、ソート
  • 答え2(エラー)

    def solution(n, lost, reserve):
        answer = n - len(lost)
        lost.sort()
        reserve.sort()
        
        for i in lost:
            for j in reserve:
                if i==j:
                    reserve.remove(j)
                    lost.remove(i)
                    answer += 1
                    break
        
        for i in lost:
            for j in reserve:
                if j==i-1 or j==i+1:
                    reserve.remove(j)
                    answer += 1
                    
        return answer
  • 今回は1番、6番、7番の間違いは通じません...;プログラマーの欠点は、その番号のレベルが何なのか教えてくれず、何を変えるべきか分からないことです...;うううう、
  • 3(正解)

  • を探しましたが、他の人も正しい問題が見つからないようなので、別の方法で解決することにしました(nに問題があると思うかもしれません)
  • def solution(n, lost, reserve):
        answer = n - len(lost)
    
        for i in range(1, n+1): # 1~n까지 반복
            if i in lost and i in reserve: # 여벌이 있는데 도난당한 사람
                reserve.remove(i) # 제거
                lost.remove(i) # 제거
                answer+=1 # 수업 참여 +1
    
        for i in range(1, n+1): # 1~n까지 반복
            if i in lost: # 도난 당한 사람
                if (i-1) in reserve: # 도난 당한 번호의 앞 번호가 여벌이 있을 경우
                    reserve.remove(i-1)
                    lost.remove(i)
                    answer+=1 # 수업 참여 +1
                elif (i+1) in reserve: # 도난 당한 번호의 뒷 번호가 여벌이 있을 경우
                    reserve.remove(i+1)
                    lost.remove(i)
                    answer+=1 # 수업 참여 +1
    
        return answer

    最も高い割合の解答

  • 感嘆簡潔...コメント
  • def solution(n, lost, reserve):
        _reserve = [r for r in reserve if r not in lost] # 도난당하지 않은 여벌있는 사람
        _lost = [l for l in lost if l not in reserve] # 여벌이 없이 도난 당한 사람
        for r in _reserve:
            f = r - 1 # 도난당하지 않은 여벌있는 번호의 앞 번호
            b = r + 1 # 도난당하지 않은 여벌있는 번호의 뒷 번호
            if f in _lost: # f가 도난 당했다면
                _lost.remove(f) # 여벌없이 도난 당한 리스트에서 제거
            elif b in _lost: # b가 도난 당했다면
                _lost.remove(b) # 여벌없이 도난 당한 리스트에서 제거
        return n - len(_lost) # 총 학생수에서 여벌없이 도난당한 사람 리스트 빼서 수업 참여 인원 산출