T.I.L (코딩 테스트 중 만난 pop 함수)

2023. 3. 31. 21:06T.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