반복문으로 딕셔너리의 키 -값 쌍을 모두 들고오기
- items : 키-값 쌍을 모두 가져옴
- keys : 키를 모두 가져옴
- values : 값을 모두 가져옴
원래 collection 을 쓰는게 편해서 써오다가 가장 기본적인 방법인 dict를 활용했다.
처음에는 다음과 같은 과정으로 풀이하였다.
1. 리스트 내 숫자와 해당 숫자의 개수를 나타내는 dictionary 생성
2. 해당 원소의 개수가 3이상인 숫자를 리스트로 출력
위와 같이 작성을 하다가 문제를 다시 보면서 생각하니 n번 연속으로 나타나야하는 거면,
" 3 3 4 3 4 일 경우에는 3이 3번이 아닌 2번 연속 나타난거구나 " 라고 생각을 했고 다시 코드를 고쳤다.
우선 연속으로 n번 나왔는지 알려면 우선 직전에 해당 숫자가 나왔는가에 대해서 생각해야 된다고 판단했다.
코드가 복잡하게 구현된거 같긴하지만 머릿속에 생각한대로 그대로 구현했다.
- dict에 number : count pair을 저장
- 다시 모든 number을 보면서 연속된 수만큼 update해주기
- 만일 해당 숫자가 0이라면 1로 업데이트
- 해당 숫자 count가 1이상이라면 ?
- 직전 숫자와 현재 숫자를 비교하여 동일할 경우 연속된 숫자로 판단!
- +1 업데이트 (단, 인덱스가 0인 경우는 제외 → 직전 숫자와 비교 X )
- 3번이상 연속된 숫자 리스트로 나타내기
number_list = [1, 2, 4, 4 ,3, 3, 3, 4, 5, 5, 5, 5, 6, 7, 8, 9, 10]
#처음에 작성한 코드
[4, 3, 5]
#수정된 코드 결과
[3, 5]
따라서 위 숫자 리스트를 넣을 경우 처음에 작성 한 코드는 숫자 4가 3번 이상 나타나므로 4라는 숫자를 출력했고,
수정된 코드에서는 연속되지 않은 숫자이므로 출력하지 않는다.
'STUDY > Python' 카테고리의 다른 글
[python] 리스트에서 원하는 위치 요소 제거 (0) | 2024.04.02 |
---|---|
[Python] File I/O (절대경로, 상대경로) (0) | 2024.04.01 |
[Python] Call by Assignment (0) | 2024.03.29 |
[Python] sort 와 sorted의 차이 (0) | 2024.03.29 |
[python] 클래스와 상속 (0) | 2024.03.10 |