T.I.L (코딩 테스트 중 만난 pop 함수)
2023. 3. 31. 21:06ㆍT.I.L (Today_I_Learned)
문제점
[1, 0, 1, 1, 1, 3, 5]와 같은 리스트를 [5, 3, 1, 1, 1, 0, 1]과 같이 뒤집는 문제였습니다.
처음 접근을 할 때 문제를 자세히 보지 않아 sorted()를 사용하여 풀어보려고 했습니다.
하지만 sorted()를 사용하면 결과는 [5, 3, 1, 1, 1, 0, 1]이 아닌 [5, 3, 1, 1, 1, 1, 0]이 나왔습니다.
당연하겠지만 sorted()는 정렬을 하기 때문이었습니다.
시도해 본 것
1. 리스트 안에 들어있는 요소들을 맨 마지막에서 부터 하나씩 옮기면 되겠다는 생각을 해봤습니다.
2. 요소들을 하나씩 뽑아낼 수 있는 방법이 무엇이 있을지 생각해 봤습니다.
3. 뽑아낸다는 생각에서 최근에 얕게 배웠던 .pop()이 생각났습니다.
4 .pop()을 공부했습니다.
해결방법
test_list = list(range(10))
print(test_list)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(test_list.pop(0))
# 0
print(test_list)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(test_list.pop(3))
# 4
print(test_list)
# [1, 2, 3, 5, 6, 7, 8, 9]
1. .pop()은 지정한 위치 값을 삭제하고 삭제한 값 취득합니다. 취득한 이후에 원본 리스트를 변형시키는데 바로 뽑아낸 값을 삭제하는 것 입니다.
2. 취득한 값은 변수에 담아 활용할 수 있었습니다.
def solution(num_list):
answer = []
for i in range(len(num_list)):
answer.append(num_list.pop())
return answer
3. 따라서 위와 같은 함수를 만들어 해결할 수 있었습니다.
알게 된 것
pop()으로 뽑아낸 값은 변수에 담아 재사용 할 수 있었습니다.
뽑아내고 값이 변형되는 것은 값이 뽑아내진 리스트 뿐입니다.
저는 순간 헷갈려서 값을 뽑아내고 삭제했는데 어떻게 활용하는 걸까 라는 생각을 했습니다.....
저는 아직 멀었네요 .... 이상입니다!
'T.I.L (Today_I_Learned)' 카테고리의 다른 글
T.I.L - Django 팀 프로젝트 1 (0) | 2023.04.10 |
---|---|
T.I.L (Django 1일 차) (0) | 2023.04.03 |
T.I.L (1) | 2023.03.30 |
T.I.L (알고리즘 문제의 문제 - 1) (0) | 2023.03.29 |
T.I.L (파이썬 턴제 게임 만들기) (1) | 2023.03.28 |