본문 바로가기
Problem Solving/프로그래머스

[프로그래머스] 연습문제 "같은 숫자는 싫어"(파이썬)

by 청량리 물냉면 2022. 5. 14.
반응형
문제

https://programmers.co.kr/learn/courses/30/lessons/12906

 

코딩테스트 연습 - 같은 숫자는 싫어

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은

programmers.co.kr

 

 

코드
def solution(arr):
    a = []
    for i in range(len(arr)):
        if i == 0:
            a.append(arr[i])
        elif arr[i] != arr[i - 1]:
            a.append(arr[i])       
    return a

 

 

 

코드 설명

빈 리스트 a를 생성한 뒤, 인덱스 == 0일 때는 무조건 새로운 내용 추가.

이후 arr[i]와 그 이전 인덱스 값을 비교해 값이 다르면 a 배열에 arr[i]값을 추가한다.

 

 

 

마무리

def no_continuous(s):
    a = []
    for i in s:
        if a[-1:] == [i]: continue
        a.append(i)
    return a

* a [-1:] 가장 마지막 인덱스의 원소 리턴

 

만약 s = [1, 1, 3, 3, 0, 1, 1]라면,

 

첫번째 반복 실행 시 

if a[-1:] == [i]: continue

empty != 1이므로 아래 코드 실행

a.append(i)

a.append(1)

 

a = [1]

 

 

두번째 반복 실행 시 

if a[-1:] == [i]: continue

a[-1:] == 1

1 == 1 → continue, 따라서 아래 코드 실행 x

 

a = [1]

 

 

세번째 반복 실행 시

if a[-1:] == [i]: continue

a[-1:] == 1

1 != 3이므로 아래 코드 실행

a.append(i)

a.append(3)

 

a = [1, 3]

 

 

 

...

 

 

 


문자열 슬라이싱 참고

https://dpdpwl.tistory.com/58

 

파이썬 인덱싱,슬라이싱(문자열,리스트)

파이썬에서는 인덱싱 과 슬라이싱이 있따. 인덱싱은 문자열이나 리스트에 번호를 부여하는것이다. 문자열 예를들어 hello python world 는 아래와같이 나타 낼 수 있습니다. 양수 인덱스는 0번부터,

dpdpwl.tistory.com

 

반응형