알고리즘 뿌셔/파이썬
[알고리즘 / Python] for 문에서 Index 뛰어 넘기
데브티치
2021. 7. 28. 18:55
이 글에는 알고리즘을 풀 때 특정 조건에서 for 문의 Index를 뛰어 넘어야 하기 위한 파이썬에서의 활용에 대한 내용이 있습니다.
자바로 알고리즘을 입문했지만 파이썬으로 알고리즘을 풀어보며 하루하루 배워나가고 있습니다.
그 중 오늘은 백준 1543번 문서 검색을 풀며 배운 내용에 대해서 정리해보았습니다.
문제 자체는 굉장히 단순해서 그리디, 브루트포스를 이용해서 완전탐색 해주면 되는 문제입니다.
그 중 특정 조건이 만족하면 인덱스를 건너 뛰어줘야하는데 이부분이 자바와 다른 것을 알게 되었습니다.
예를 들어 자바에서 for문을 통해 0부터 10 미만의 수 중 짝수만 출력한다고 하면
다음과 같은 코드를 작성할 수 있습니다.
for(int i=0; i<10; i++){
System.out.println(i);
if(i%2==0){
i++;
}
} //출력: 0 2 4 6 8
다음과 같이 index인 i가 2로 나누어 떨어질때는 index를 증가시켜
index 자체가 0, 2, 4, 6, 8로 건너뛰게끔 할 수 있습니다.
하지만 위와 같은 코드를 그대로 파이썬에서 작성하여 실행을 하면 다음과 같은 결과가 나옵니다.
for i in range(10):
print(i)
if i % 2 == 0:
i += 1
#출력: 0 1 2 3 4 5 6 7 8 9
이와 같이 반복문 안에서는 i가 반영이 되지만 자바처럼 i를 건너 뛸수는 없고 순차적으로 진행합니다.
따라서 우리가 의도한 i를 건너뛰기 위해서는 다음과 같은 방법을 사용한다고 합니다.
i = 0
while i < 10:
print(i)
if i % 2 == 0:
i += 1
i += 1
#출력: 0 2 4 6 8
이와 같이 while문을 사용하여 특정 조건에서 i를 건너뛰어주면 우리가 의도한 대로 인덱스를 건너뛰는 것을 활용할 수 있습니다.