프로그래머스 | 같은 숫자는 싫어 [파이썬 python]

2023. 3. 23. 17:07·Algorithm/프로그래머스
 

프로그래머스

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

programmers.co.kr

 

코드

def solution(arr):
    answer = [arr[0]]
    for i in range(1, len(arr)):
        if arr[i] != arr[i-1]:
            answer.append(arr[i])
    return answer

주어지는 arr에서 연속으로 같은 수가 나오면 하나를 제거한 리스트를 리턴하는 문제이다.

예를 들어, arr=[1, 1, 3, 0, 1, 1]이면 [1, 3, 0, 1]을 리턴하는 것이다.

 

리스트에서 중복을 제거하는 것은 set을 이용하면 가장 쉽게 할 수 있다. 

하지만, set은 순서가 존재하지 않는 자료형이기 때문에 우리가 구하고자 하는 답이 될 수 없다.

우리가 구하고자 하는 답은 순서는 그대로 유지하되, 중복된 요소 하나만 제거된 리스트이기 때문에 직접 하나하나 비교해주어야 한다.

 

하나씩 비교하기 위해 for문을 작성하였다.

이때 왜 answer에 arr[0]을 먼저 넣고 시작하는지에 대해 의문을 가질 수 있다.

나 역시도 0부터 len(arr)까지 i번째와 i+1번째를 비교하면 될 것 같은데라는 생각을 해서 아래와 같은 코드를 작성했었다.

for i in range(len(arr)):
	if arr[i] != arr[i+1]:
    	answer.append(arr[i])

하지만 이 코드를 실행시켜보면 indexError가 발생한다. 

그 이유는 i가 마지막 인덱스(= len(arr)-1)일 때 arr[i+1]이 arr의 범위를 넘어가기 때문이다.

그래서 i번째와 i-1번째를 비교하는 방식을 택한 것이다.

 

그럼 0부터 len(arr)까지 i번째와 i-1번째를 비교하면 에러가 발생하지 않느냐고 묻는다면 그것 또한 아니다.

i가 0이면 i-1은 존재하지 않는다.

 

그렇기 때문에 answer에 arr[0]을 추가한 상태에서 1번 인덱스부터 비교하는 것이다.

 

저작자표시 (새창열림)
'Algorithm/프로그래머스' 카테고리의 다른 글
  • 프로그래머스 | 예산 [파이썬 python]
  • 프로그래머스 | 이상한 문자 만들기 [파이썬 python]
  • 프로그래머스 | 행렬의 덧셈 [파이썬 python]
  • 프로그래머스 | 약수의 갯수와 덧셈 [파이썬 python]
dduniverse
dduniverse
  • dduniverse
    dduniverse
    dduniverse
  • 전체
    오늘
    어제
    • 분류 전체보기 (243) N
      • Algorithm (123)
        • 알고리즘 이론 (8)
        • 백준 (19)
        • 프로그래머스 (83)
        • 구름 알고리즘 먼데이 챌린지 (13)
      • 빅데이터분석기사 (10)
        • 통계 (4)
        • 실기 (6)
      • KT에이블스쿨 (26)
      • FrontEnd (11)
        • React (5)
        • 기타 (6)
      • BackEnd (18)
        • Django (15)
        • Spring (3)
      • DS & ML (11)
        • Machine Learning (9)
        • Kaggle (2)
      • TIL (44) N
        • python (22)
        • javascript (3)
        • 오류해결 (10)
        • 기타 (8) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 관리
    • 글쓰기
  • 링크

  • 인기 글

  • hELLO· Designed By정상우.v4.10.0
dduniverse
프로그래머스 | 같은 숫자는 싫어 [파이썬 python]
상단으로

티스토리툴바