코딩문제풀이/파이썬

[프로그래머스] 체육복 (파이썬)

오늘밤공부 2023. 3. 10. 14:26
반응형

🗓️ 문제 설명

  • 점심시간에 도둑이 들어 일부 학생이 체육복을 도난당해 여벌 체육복이 있는 학생이 체육복을 빌려주려 합니다.
  • 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호 혹은 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다.
  • 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 주어집니다.
  • 체육수업을 들을 수 있는 학생의 최댓값을 반환하세요.
  • 제한 사항
    • 2 ≤ n ≤ 30
    • 1 ≤ lost의 길이 ≤ n
    • 1 ≤ reserve의 길이 ≤ n
      • lost와 reserve는 중복 없음
    • 여벌 체육복이 있는 학생만 다른 학생에게 체육복을 빌려줄 수 있음
    • 여벌 체육복을 가져온 학생이 체육복을 도난당했을 경우, 체육복을 빌려줄 수 없음
  • 입출력 예시
n lost reserve return
5 [2, 4] [1, 3 5] 5
5 [2, 4] [3] 4
3 [3] [1] 2

 

💻 코드

최종 코드

  • 수정사항
    >> 새로운 lost, reserve를 정렬

 

코드 풀이

 

다른 사람 풀이

더보기

풀이 1번

  1. 2~3번줄 : lost와 reserve에 중복으로 존재하는 학생을 제외
  2. 4번줄 : 새로운 reserve에서 학생을 꺼내는 반복문 실행
  3. 5~6번줄 : 체육복을 빌려줄 수 있는 학생 번호를 저장
  4. 7~10번줄 : lost에서 체육복을 빌릴 수 있는 학생을 제외
  5. 11번줄 : 전체 학생 수에서 체육복을 빌리지 못한 학생을 뺄셈

 

⚙️ 시행착오

1차 시도

더보기
  • 테스트 케이스 13, 14번에서 실패
  • lost & reserve가 각각 [4,2], [3,5]일 경우, 테스트 실패가 발생

 

 

반응형