같은 숫자는 싫어 - 문제 12906
성능 요약
메모리: 27.9 MB, 시간: 57.70 ms
구분
코딩테스트 연습 > 스택/큐
채점 결과
정확성: 71.9
효율성: 28.1
합계: 100.0 / 100.0
제출 일자
2024년 11월 12일 10:32:20
문제 설명
배열 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
의 크기 : 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,2
문제의 예시와 같습니다.
<내 코드>
<모범 사례>
- groupby 이용
from itertools import groupby
def solution(arr):
return [key for key, _ in groupby(arr)]
- 내 코드 개선
def solution(arr):
answer = []
for a in arr:
if not answer or answer[-1] != a:
answer.append(a)
return answer
<보충 학습>
- 파이썬 'groupby'
from itertools import groupby
groupby(iterable, key = None)
# iterable : list, tuple 같은 데이터
# key 는 그룹화 할 기준 지정하는 함수
groupby 는 연속된 요소 있을 때 그룹형성함
실제 예
from itertools import groupby
data = [1, 1, 2, 2, 1, 1, 3]
grouped_data = groupby(data)
# 그룹을 출력
for key, group in grouped_data:
print(key, list(group))
# 1 [1, 1]
# 2 [2, 2]
# 1 [1, 1]
# 3 [3]
key, group 로 나오게 가능
딕셔너리의 경우 key 로 그룹화 가능
from itertools import groupby
# 예제 데이터: 점수를 가진 학생 리스트
students = [
{"name": "Alice", "score": 90},
{"name": "Bob", "score": 85},
{"name": "Charlie", "score": 90},
{"name": "David", "score": 85}
]
# 점수(score)를 기준으로 그룹화
grouped_by_score = groupby(students, key=lambda x: x["score"])
# 그룹화 결과 출력
for score, group in grouped_by_score:
print(score, list(group))
90 [{'name': 'Alice', 'score': 90}, {'name': 'Charlie', 'score': 90}]
85 [{'name': 'Bob', 'score': 85}, {'name': 'David', 'score': 85}]
'문제풀이 > 일일연습문제' 카테고리의 다른 글
[스택/큐]99클럽 코테 스터디 17일차 TIL + 백준/Silver/25497. 기술 연계마스터 임스 (0) | 2024.11.14 |
---|---|
[스택/큐]99클럽 코테 스터디 16일차 TIL + 백준/Silver/2161. 카드1 (0) | 2024.11.13 |
[스택/큐]99클럽 코테 스터디 14일차 TIL + 백준/Bronze/10845. 큐 (0) | 2024.11.11 |
[스택/큐]99클럽 코테 스터디 13일차 TIL + 백준/Bronze/12605. 단어순서 뒤집기 (0) | 2024.11.10 |
[스택/큐]99클럽 코테 스터디 12일차 TIL + 백준/Silver/10828. 스택 (0) | 2024.11.09 |