코딩테스트 연습에 공개된 문제는 (주)그렙이 저작권을 가지고 있습니다.
(지문 하단에 별도 저작권 표시 문제 제외)
코딩테스트 연습 문제의 지문, 테스트케이스, 풀이 등과 같은 정보는 비상업적, 비영리적 용도로 게시할 수 있습니다.

코딩테스트 정보

  • 프로그래머스
  • python
  • level 1
  • 점수 : 캡쳐 못함
  • 문제 링크


문제

문제 링크 참고


풀이 코드

풀이 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(n, lost, reserve):
  inter = set(lost).intersection(set(reserve))
  lost = set(lost) - inter
  reserve = set(reserve) - inter
  
  for i in reserve:
    if i-1 in lost:
      lost.remove(i-1)
    elif i+1 in lost:
      lost.remove(i+1)
  
  return n - len(lost)


풀이 방식

■■■■ 접근 방식 ■■■■

set 으로 연산이 편하게 접근.
그런데.. set의 사칙연산을 이용하면 굳이 intersection을 구할 필요로 없었다.

1
2
3
4
5
6
7
8
9
10
11
12
def solution(n, lost, reserve):
  lost = set(lost) - set(reserve)
  reserve = set(reserve) - set(lost)
  
  for i in reserve:
    if i-1 in lost:
      lost.remove(i-1)
    elif i+1 in lost:
      lost.remove(i+1)
  
  return n - len(lost)