https://app.codesignal.com/arcade/python-arcade/meet-python/ZiezPAoWeaK9ThXvQ
✔️문제 요약
- beautiful list : 첫번째 요소와 마지막 요소가 같거나, 목록이 비어있는 리스트
- beautiful list를 만들어 낼 때 까지 첫번째 요소와 마지막 요소를 잘라내는 함수 구현
✔️풀이 방법
1.첫번째 요소와 마지막 요소가 같다는 것은, 리스트의 인덱스로 쉽게 구현이 가능하다
2.앞,뒤가 같아질때까지 앞 뒤를 잘라내는 함수를 구현하면 된다.
문제에 나온 언팩킹이 뭔지 모르기도 하고, 단순히 res[1:-1]=res로 풀려했는데, 타임리밋에 걸려버려서 안됨 ㅜㅜ
(파이썬에서도 실행이 안되는데 오래걸리는 코드인건지 안되는 코드인건지 모르겠다...ㅠ0ㅠ)
def solution(a):
res = a[:]
while res and res[0] != res[-1]:
res[1:-1] = res
return res
모범 답안을 살펴보았더니 이런식으로 코드가 작성되어있었는데 이게 무슨뜻이냐면
unpacking이란게 *을 사용하는 방법으로,
start, *res, end =res 라면 res에는 start,end 양 끝값이 제거되고 res가 들어가진다고 함 ....
(출처 :https://greenhelix.tistory.com/134?category=902128)
def solution(a):
res = a[:]
while res and res[0] != res[-1]:
a, *res, b = res
return res
a,b에는 문자열 아무거나 들어가도 상관 없는듯 함
✔️고찰
파이썬의 [:]는 슬라이싱 기능으로, 인덱스를 설정해주지 않으면 전체를 불러오는 기능을 한다.
unpacking이란걸 처음 알게되었다.
'코딩테스트 > 코딩테스트 Python' 카테고리의 다른 글
[CodeSignal] singleNumber (Python) (0) | 2022.09.05 |
---|---|
[CodeSignal] amendTheSentence (Python) (0) | 2022.09.05 |
[CodeSignal] Mex Function (Python) (0) | 2022.09.05 |
[CodeSignal] Collections Truthness (Python) (0) | 2022.09.02 |
[CodeSignal] traverseTree (Python) (0) | 2022.08.26 |
댓글