같은 숫자는 싫어
풀이
제목은 같은 숫자가 싫다고 하지만, 내용을 읽어보면 연속된 같은 숫자가 싫다는 것을 알 수 있다.
따라서 숫자가 연속된 것, 예시로 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
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv1 개인정보 수집 유효기간(python) (1) | 2024.01.29 |
---|---|
프로그래머스 Lv1 문자열 내림차순으로 배치하기(python) (0) | 2024.01.29 |
프로그래머스 Lv1 추억 점수(python) (0) | 2024.01.29 |
프로그래머스 Lv2 다음 큰 숫자(python) (0) | 2024.01.29 |
프로그래머스 Lv1 크기가 작은 부분 문자열 (python) (0) | 2024.01.29 |