코-딩/프로그래머스

프로그래머스::체육복

2023. 2. 16. 21:26
728x90

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

난이도 : Lv.1

 

풀이
def solution(n, lost, reserve):
    
    newReserve = [r for r in reserve if r not in lost]
    newLost = [l for l in lost if l not in reserve]

    for nr in newReserve:
        if nr - 1 in newLost:
            newLost.remove(nr - 1)
        elif nr + 1 in newLost:
            newLost.remove(nr + 1)
    
    answer = n - len(newLost)
    return answer

이미 카테고리에서 Greedy 알고리즘이라고 나와있다. 그렇다면 어떻게 하면 최적의 답을 찾을 수 있는지 머리를 좀 굴리면 된다.

우선, 중복도 없고! 여벌 체육복 있는 학생도 도난당했을 수도! 가 중요하다.

저 문장을 읽으면 아 중복되는 거 찾아서 빼야겠구나~ 하는 생각이 자동으로 들기 때문ㅎㅎ

그래서 나는 서로 영향을 끼치는 거 빼서 newReserve 랑 newLost를 새로 만들었다.

 

그럼 이제 최적의 답을 찾는 건 쉽다. 그냥 무조건 왼쪽 사람에게 먼저 빌려주면 됨.
그리고 빌려줬으면 새lost배열에서 제거해서 최종 답 구하면 완성!

 

다른 풀이
#newReserve = set(reserve) - set(lost) 

다른 사람 풀이를 보니, 저렇게 하는 사람들도 있더라

set 은 중복을 허용하지 않는 집합 자료형으로서 저런 식의 연산은 차집합을 뜻한다.

728x90
저작자표시 비영리 변경금지 (새창열림)
'코-딩/프로그래머스' 카테고리의 다른 글
  • 프로그래머스::이상한 문자 만들기
  • 프로그래머스::모의고사
  • 프로그래머스::신고 결과 받기
  • 프로그래머스::콜라츠 추측
힞뚜루마뚜루
힞뚜루마뚜루
히++;힞뚜루마뚜루 님의 블로그입니다.
250x250
힞뚜루마뚜루
히++;
힞뚜루마뚜루
전체
오늘
어제
  • 히++; (107)
    • 코-딩 (50)
      • BOJ (8)
      • 프로그래머스 (19)
      • Leetcode (23)
    • IT (21)
      • Spring | Java (9)
      • CS (2)
      • Angular (2)
      • Design Pattern (4)
      • etc (4)
    • 후-기 (12)
      • 취업 후기 (7)
      • 일상 후기 (5)
    • 일기 (24)

블로그 메뉴

  • 홈
  • Guestbook
  • Tag Cloud
  • 글 작성

공지사항

인기 글

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
힞뚜루마뚜루
프로그래머스::체육복
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.