Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- dp
- ODQA
- 알고리즘_스터디
- 알고리즘스터디
- 부스트캠프_AITech3기
- 그리디
- 최단경로
- 다이나믹프로그래밍
- U_stage
- 주간회고
- Level1
- 개인회고
- 프로그래머스
- 이진탐색
- 단계별문제풀이
- 파이썬 3
- mrc
- 다시보기
- python3
- 이코테
- 정렬
- 구현
- Level2_PStage
- 기술면접
- dfs
- 그래프이론
- Level2
- 부스트캠프_AITech_3기
- 백준
- 백트랙킹
Archives
- Today
- Total
국문과 유목민
8. 같은 숫자는 싫어 본문
0. 문제
링크) https://programmers.co.kr/learn/courses/30/lessons/12906
1. 알고리즘 계획
- for문을 돌면서 리스트 앞, 뒤의 값을 확인하면서 돈다.
- 마지막 리스트 항목에서 비교가 안되어, 1~9에 해당되지 않는 값 하나를 추가
2. 나의 코드
def solution(arr):
arr.append(10)
answer = [arr[i-1] for i in range(1, len(arr)) if arr[i-1] != arr[i]]
return answer
- 10이라는 임의의 값을 추가한 게 아쉽다.
3. 다른 사람의 코드
def no_continuous(arr):
return [arr[i] for i in range(len(arr)) if [arr[i]] != arr[i+1 : i+2]]
- 리스트 슬라이싱을 이용하면 해결 가능
- 내가 아쉬웠던 부분을 해결할 수 있는 코드
def no_continuous(s):
a = []
for i in s:
if a[-1:] == [i]: continue
a.append(i)
return a
- 오프셋 인덱스를 사용했음. 빈 리스트에 새로운 수가 나오면 추가하고, 연속일 경우 pass
4. 정리 및 리뷰
- 리스트 오프셋 인덱스로 슬라이싱할 경우에는 범위를 초과해도 괜찮다.
※ 대신 type은 '리스트형'이므로 리스트와 비교한다.
- 문제를 완벽하게 못 푼 것 같아서 아쉽지만, 오프셋 인덱스의 사용법을 깨달음
( for문과 다르게 범위를 초과해도 괜찮다.)
코드 만족도: ★★★☆☆
'알고리즘_코딩테스트 > 프로그래머스_Level1' 카테고리의 다른 글
10. 두 정수 사이의 합 (0) | 2020.09.09 |
---|---|
9. 나누어 떨어지는 숫자 배열 (0) | 2020.09.09 |
7. 가운데 글자 가져오기 (0) | 2020.09.09 |
6. 2016년 (0) | 2020.09.09 |
5. K번째 수 (0) | 2020.09.09 |
Comments