[파이썬 알고리즘 Tip] 반복문 안에서는 리스트에 절대 원소를 추가/삭제하지 않는다
알고리즘 문제가 아주 쉽든, 어려든 간에 for 문으로 리스트의 원소를 순회하는 코드는 항상 쓸 수밖에 없다. N = 100 arr = [i for _ in range(N)] to_be_removed = [1, 5, 7, 10] for item in arr: if item in to_be_removed: # 조건에 따라 어떤 명령을 실행 그런데 여기서 치명적인 실수를 종종 할 때가 있다. 바로 순회하는 iterable 객체(리스트)의 원소를 직접 건드리는 것이다. 이런 간단한 상황을 생각해보자. arr = [1, 2, 3, 6, 7, 9] for item in arr: if item % 3 == 0: arr.remove(3) 주어진 리스트(arr)에서 어떤 조건(3으로 나눈 나머지가 0)을 만족하면, 그..
2024. 3. 12. 16:51 ㆍ
알고리즘과 자료구조