PangLog
PangLog_k.k
PangLog
전체 방문자
오늘
어제
  • Category (77)
    • 💾기록 (2)
      • 📔기록 (2)
    • 🔧알고리즘 (10)
    • ⚡AI (17)
      • ∃Mathematics (11)
      • AI (5)
      • 논문 (1)
    • 👨‍💻Data Science (2)
    • 📚CS (4)
      • 📡컴퓨터 네트워크 (3)
      • 💾DB (0)
      • ⚙OS (1)
    • ⌨Programming (15)
      • Python (6)
      • Pytorch (3)
      • FastAPI (0)
      • Java (1)
      • Spring (3)
      • Elastic Search (2)
    • 💻 (23)
      • Git (9)
      • Issue sol (2)
      • Linux (2)
      • etc (7)
      • Web (2)
      • Docker (1)
    • 📰칼럼 (4)
      • IT (4)
      • 그 외 (0)
    • Review (0)

블로그 메뉴

  • 홈
  • Github

인기 글

최근 글

태그

  • 백준
  • 파이참
  • 프로그래머스
  • inference
  • BOJ
  • cv2
  • 11660
  • 백준허브 이슈
  • Python
  • URL URI 차이
  • pycham
  • 백준허브 에러
  • 자바
  • 파이썬
  • 인퍼런스
  • 내부단편화
  • 백준허브
  • 옹알이(1)
  • 깃허브
  • 알고리즘
  • 쥬피터랩
  • cors
  • 외부단편화
  • SWEA
  • 프로그래머스 체육복
  • K-디지털트레이닝 해커톤
  • Java
  • 탐색적 데이터 분석
  • 5215
  • Jupyter Lab
hELLO · Designed By 정상우.
PangLog

PangLog_k.k

🔧알고리즘

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

2022. 6. 9. 19:47

문제링크

 

 

 

✨Idea

여분의 체육복이 있는 경우도 도난당하게 된다면 빌려줄 수가 없으므로 lost와 reserve에서 서로 겹치는건 뺀다 그 후 체육복이 있는 인덱스는 True로 처리 후 여분의 학생이 앞 뒤를 체크하며 빌려주면 된다

 

그러나 아래의 소스코드에서 오름차순 과정이 없다면, 먼저 좌쯕체크 후 우측을 체크하는과정만을 거쳐 예외 케이스가 발생한다

 

예를 들어 아래와 같은 상황이다

 

n = 5

lost = [2, 4], reserve = [3, 1]

 

정상적인 상황이라면 1번 학생이 2번에게 3번 학생이 4번에게 빌려 줄 수 있으나, 정렬을 하지 않는다면 3번이 2번에게 빌려주어 4번 학생은 빌릴 수가 없게되므로 처음에 reserve를 정렬하는 과정이 필요하다

 

(2021년 8월 30일 테스트케이스가 추가되었습니다. 에 해당하는 18, 20번 Test Case가 예외상황인 것 같다.)

 

소스코드

 

reserve.sort()
final_reserve = [x for x in reserve if x not in lost]
lost = [x for x in lost if x not in reserve]

check = [True] * n

for i in range(n):
    for j in lost:
        check[j-1] = False

for reserve in final_reserve:
    if (reserve - 1) in lost and check[reserve - 2] == False:
        check[reserve - 2] = True
    elif (reserve + 1) in lost and check[reserve] == False:
        check[reserve] = True

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'🔧알고리즘' 카테고리의 다른 글

[swea] [Java] 5215. 햄버거 다이어트  (0) 2022.08.11
[BOJ][파이썬, 자바]11660 구간 합 구하기5  (0) 2022.08.03
[swea]1204. 최빈수 구하기, 파이썬(python)  (0) 2022.05.26
[swea]1983. 조교의 성적 매기기, 파이썬(python)  (0) 2022.05.18
[swea]2056. 연월일 달력, 파이썬(python)  (0) 2022.05.17
    '🔧알고리즘' 카테고리의 다른 글
    • [swea] [Java] 5215. 햄버거 다이어트
    • [BOJ][파이썬, 자바]11660 구간 합 구하기5
    • [swea]1204. 최빈수 구하기, 파이썬(python)
    • [swea]1983. 조교의 성적 매기기, 파이썬(python)
    PangLog
    PangLog

    티스토리툴바