
🔍문제
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,
- arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1]을 return 합니다.
- arr = [4, 4, 4, 3, 3] 이면 [4, 3]을 return 합니다.
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.
제한 사항
- 배열 arr의 크기 : 1,000,000 이하의 자연수
- 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수
입출력 예
| arr | answer |
| [1,1,3,3,0,1,1] | [1,3,0,1] |
| [4,4,4,3,3] | [4,3] |
💡 풀이 1
- 빈 결과 리스트를 생성
- 배열을 순회하면서 이전 숫자와 현재 숫자를 비교
- 연속되지 않은 숫자만 결과 리스트에 추가
하는 방식으로 코드를 생각했다.
💣 문제 발생: 마지막 요소 참조
def solution(arr):
answer = []
for i in range(len(arr)):
if arr[i-1] != arr[i]:
answer.append(arr[i])
return answer[]

for문이 처음 돌 때, arr [i-1]는 arr [-1]이 되어 마지막 요소를 참조하게 되어 의도한 바가 아니게 된다.
def solution(arr):
answer = []
for i in range(len(arr)):
if i == 0 or arr[i-1] != arr[i]:
answer.append(arr[i])
return answer
i=0인 경우, 즉 배열의 첫 번째 요소는 무조건 추가하여 문제를 해결하였다.

💡 풀이 2
if 문을 어떻게 효율적으로 작성할까 고민하다가 두 번째 풀이를 생각하게 되었다.
def solution(arr):
//스택에서 원소를 제거하지 않고 가져오기만 할 때에는 [-1]을 이용
answer = [-1]
for in range(len(arr)):
if answer arr[i]와 같지 않으면:
값을 추가함 answer.append(arr[i])
return answer
풀이 1의 arr 배열끼리 비교가 아닌,
answer 배열과 arr 배열을 비교하여 i=0인 조건을 제거하였다.
💣 문제 발생: 전체 리스트 반환
def solution(arr):
answer = [-1]
for i in range(len(arr)):
if answer[-1] != arr[i]:
answer.append(arr[i])
return answer[]
맨 마지막 코드에서 전체 리스트를 반환해야 하는데, 잘못된 구문으로 인해 오류가 발생하였다.
def solution(arr):
answer = [-1] # 초기값으로 -1을 넣음
for i in range(len(arr)):
if answer[-1] != arr[i]:
answer.append(arr[i])
return answer[1:] # 처음에 추가한 -1을 제외하고 반환
answer에 임의의 값 -1을 넣었기 때문에, -1을 제거하고 출력해야 한다.

코딩테스트 준비 스터디에 새로 참여하게 되었다.
파이썬은 교양으로 접한 것이 다인데, 그때의 기억을 되살려서 공부하고 있다.
처음으로 코딩테스트를 준비하니까 너무 신기하고 설렌다.
긴 줄글이라면 질색했는데, 문제에서의 요구조건을 찾는 재미를 알게 돼서 이제 줄글 읽는 게 흥미롭다.
앞으로도 꾸준히 코테 준비를 하면서 내 코딩 실력을 향상시켜야지🤩
'Python > 코딩 테스트' 카테고리의 다른 글
| [프로그래머스 - 완전탐색] 최소직사각형 (0) | 2024.09.10 |
|---|---|
| [프로그래머스 - 정렬] 가장 큰 수 (0) | 2024.09.10 |
| [프로그래머스 - 정렬] K번째 수 (0) | 2024.09.10 |
| [프로그래머스 - 해시] 완주하지 못한 선수 (0) | 2024.08.22 |
| [프로그래머스 - 힙] 더 맵게 (0) | 2024.08.22 |
댓글