본문 바로가기
*Algorithm/Programmers_Level1

[programmers] 프로그래머스 Level1 같은 숫자는 싫어(파이썬 Python)

by codinguser 2020. 8. 29.

프로그래머스
(주)그렙

[programmers] 프로그래머스 Level1 같은 숫자는 싫어

(파이썬 Python)

* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제
* 소스 코드 및 정리한 내용의 저작권은 글쓴이에게 있습니다.

 

프로그래머스 Level1 같은 숫자는 싫어


1) 문제

 

프로그래머스 같은 숫자는 싫어

 

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

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

programmers.co.kr


2) 풀이 과정

 

 

1. 반환할 중복이 제거된 빈 배열을 선언한다.

 

2. 첫번째의 값은 무조건 중복이 되지 않기에 값을 넣어준다.

Why? 빈배열로는 기준을 잡을 수 없으니까(중복되지 않는 첫번째의 값을 추가)

 

3. 메개변수로 받은 배열을 (배열의 크기-1)만큼 반복을 확인 해준다.

Why? 이 때 i의(인덱스값)으로 인해 초기의 시작값은 1로 잡는다. 그래야 arr[1] != arr[0] 으로 기준 인덱스가 0부터 시작이 되니까

 

4. arr[i]의 값을 빈 배열에 출력해준다.

Why? arr[i-1]가 아니라 arr[i]로 추가 하는 이유는 입출력의 예를 직접 해보면 된다.

arr[0] : 4

arr[1] : 4

arr[2] : 4

arr[3] : 3

arr[4] : 3

answer = [4, ]

 

arr[0] = 4

반복횟수 : 1 - > arr[1]=arr[0] # 4

반복횟수 : 2 - > arr[2]=arr[1] # 4

반복횟수 : 3 - > arr[3]!=arr[2] # 3

반복횟수 : 4 - > arr[4]=arr[3] # 3

 


3) 코드

 

1
2
3
4
5
6
7
8
9
def solution(arr):
    answer = []
    answer.append(arr[0])
    
    for i in range(1len(arr)):
        if(arr[i] != arr[i-1]):
            answer.append(arr[i])
            
    return answer
cs

4) 정리 노트

 

1
2
3
for i in range(15):
    print(i) # 변수 i에 1,2,3,4 저장
 
 
cs

 

댓글