알고리즘/프로그래머스
프로그래머스 Lv1 같은 숫자는 싫어(python)
개발하는 호랑이
2024. 1. 29. 19:49
같은 숫자는 싫어
풀이
제목은 같은 숫자가 싫다고 하지만, 내용을 읽어보면 연속된 같은 숫자가 싫다는 것을 알 수 있다.
따라서 숫자가 연속된 것, 예시로 222212332211 이 있으면, 212321 이 돼야 한다는 것이다.
난 이방법을 stack의 방법과 엮어서 생각을 해보았고, 반쪽짜리 stack의 방식으로 진행했다.
# 0 ~ 9까지의 숫자, 연속적으로 나타나면 하나만 남기기
# return 시 배열의 순서를 그대로 해야하므로 list(set(배열))은 안됨
# 반쪽자리 stack을 이용해보자
def solution(arr):
stack = [-1]
for i in range(len(arr)):
if stack[-1] != arr[i]:
stack.append(arr[i])
return stack[1:]
다른 사람 풀이
워낙 간단한 문제여서, 다른 사람이 푼 방법도 내가 푼 풀이 방법과 별반 다를 바 없었다.
def no_continuous(s):
# 함수를 완성하세요
a = []
for i in s:
if a[-1:] == [i]: continue
a.append(i)
return a