밍비
프로그램의 편린
밍비
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • Spring (2)
    • TIL (23)
    • 프로그래머스 (12)
    • Udemy (16)
    • Typescript (2)
    • MERN (1)
    • AWS (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 수평 스케일링
  • 리액트
  • overflow-wrap
  • Availability Zones
  • state 끌어올리기
  • Page Moving
  • state 관리
  • 리액트 reducer
  • 리스트 조회
  • useParams
  • useRef
  • 리액트 생애주기
  • Points of Presence
  • useState
  • 컴포넌트트리
  • useNavigate
  • 리액트 프로젝트 만들기
  • DOM
  • API 호출
  • 데이터 수정
  • 한입크기로잘라먹는리액트
  • State 합치기
  • 네이버커넥트
  • react
  • Edge Locations
  • AWS Regions
  • 서비스아키텍처
  • 한입 크기로 잘라먹는 리액트
  • 함수형 update
  • 분산저장소

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍비

프로그램의 편린

[Lv.1][python] 체육복
프로그래머스

[Lv.1][python] 체육복

2022. 8. 8. 16:57
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42862#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제는 여기서 확인할 수 있다.

def solution(n, lost, reserve):
    lost.sort()
    reserve.sort()
    answer = n - len(lost)
    for i in range(len(lost)):
        for l in lost:
            if l in reserve:
                answer+=1
                lost.remove(l)
                reserve.remove(l)
                break
    for l in lost:
        for r in reserve:
            if r == l-1 or r == l+1:
                answer += 1
                reserve.remove(r)
                break
    return answer

그리디 문제이다. 먼저 도난당한 학생들 중 여벌의 체육복을 가져온 학생들을 제외시킨 후, 나머지 lost 리스트를 돌면서 reserve에 사이즈가 맞는 체육복이 있을 경우 answer을 1 증가시키고 지워주는 식으로 코드를 구상하였다.

처음에 헤맸던 게 이부분이다.

이 제한사항을 읽지 못하고,, 여벌 체육복을 가져온 학생이 도난당했을 경우를 생각하지 못했다가, 나중에 추가해주었다.

또 전에 range()를 이용해 for문을 진행시키면, remove()를 써도 i값이 배열이 바뀐 것을 인지하지 못한다고 했는데, 

range()를 쓰지 않을 경우에는 바뀐 것을 인지해 i값 또한 업데이트된다는 것을 재고하였다.

(이전에는 크레인 인형 뽑기 게임 문제에서 이를 알 수 있었다.)

그래서 5번줄을 i in lost로 쓸 경우 중간에 값이 지워진 후 접근하지 못하는 곳이 생겨 예외처리에서 막히는 부분이 생긴다.

 

728x90

'프로그래머스' 카테고리의 다른 글

[Lv.1][python] 완주하지 못한 선수  (0) 2022.08.07
[Lv.1][python] 같은 숫자는 싫어  (0) 2022.08.07
[Lv.1][python] 크레인 인형 뽑기 게임  (0) 2022.08.07
[Lv.1][python]신고 결과 받기  (0) 2022.08.02
오픈채팅방  (0) 2022.07.01
    밍비
    밍비

    티스토리툴바