파이썬 리스트 돌면서 현재 값 삭제(remove)
파이썬으로 알고리즘 문제를 풀다보면 리스트를 돌면서 현재 값을 삭제해줘야 할때가 있다. 그럴때 흔히 아래와 같은 방식의 알고리즘을 떠올린다. temp = [1,2,3,4,5] for i in temp: temp.remove(i) 하지만 위의 코드는 remove시에 원본 리스트인 temp의 데이터가 훼손되기 때문에 원하는대로 돌아가지 않는다. 1. 첫번째 루프에서 0번째 원소인 1을 지우고 temp=[2,3,4,5] 가 된다. 2. 두번째 루프에서 1번째 원소를 가져오는데 이 값이 3이 되어버린다. => 2를 건너뛰어 버린다. 위의 상황을 방지하기 위해 다음과 같은 방법을 사용한다. temp = [1,2,3,4,5] for i in temp[:]: temp.remove(i) temp[:] 를 이용해 tem..