-
프로그래머스 고득점 kit(유형정리) - 같은 숫자는 싫어Algorithm/Stack&Queue 2022. 12. 30. 13:29728x90
코딩테스트 연습 - 같은 숫자는 싫어 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
배열 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보다 작거나 같은 정수
입출력 예arranswer[1,1,3,3,0,1,1] [1,3,0,1] [4,4,4,3,3] [4,3] 문제는 위와 같다. 이해하기가 굉장히 단순하고 떠오르는 알고리즘 자체가 같은 숫자가 나오면 그냥 안적어주면 된다는 것이다.
유형정리를 위한 학습이다보니 스택/큐 자료구조를 최대한 사용하기 위해 노력했다.
def solution(arr): answer = [] for i in range(len(arr)): if i == 0: answer.append(arr[i]) elif arr[i] != arr[i-1]: answer.append(arr[i]) return answer이렇게 단순하게 해결이 가능하다.
※ 알고리즘
1. 배열 index i가 제일 처음인 경우 무조건 append 시켜준다.
2. 배열 index i를 조사할 때 i-1과 같지 않으면 append 시켜준다.
이 단순한 알고리즘으로 위 문제의 해결이 가능하다.
이제부터는 python으로 코딩테스트 study를 진행하려고 한다. 아무래도 코테 최강언어가 python이고 직관적이며, 학과 특성상 python을 이용한 데이터분석 과목이 많아 아무래도 많이 쓰는 python으로 연습을 하는 것이 미래에 훨씬 도움이 될 것이라는 생각 때문이다.
728x90'Algorithm > Stack&Queue' 카테고리의 다른 글
프로그래머스 고득점 kit(유형정리) - 주식가격 (0) 2023.01.03 프로그래머스 고득점 kit(유형정리) - 다리를 지나는 트럭 (0) 2023.01.03 프로그래머스 고득점 kit(유형정리) - 프린터 (0) 2023.01.01 프로그래머스 고득점 kit(유형정리) - 기능개발 (0) 2022.12.31 프로그래머스 고득점 kit(유형정리) - 올바른 괄호 (0) 2022.12.30