코테 문제를 풀던 중 출력예시가 나오지 않아서 무척 답답했다
분명 이론상으로는 완벽했는데,,!!!으아아아
print로 체크해보니 중첩 for문에서 break할 경우 한 겹만 break 되고 있었기 때문이었다.
예를 들어 a=10으로 놓고, 중첩 포문 안에서 0부터 수를 증가시키다 10이 나오면 break 하는 코드를 만들었다고 해보자.
a = 10
for i in range(0, 20):
print(i)
for j in range(0, 20):
if j == a:
break
내가 의도한 바는, j for문에서 10이 나오면 모든 for문을 빠져나오는 것이다.
때문에 원하는 결괏값은 0이다.
하지만, 결괏값은 0~19가 나오는데, 이중 포문의 안쪽 포문에서 break를 할경우, 안쪽 포문만 break되고 있다는 것을 확인할 수 있다.
이를 해결하기 위해 임의로 flag라는 변수를 만들었다.
flag의 초기값은 True이고, 10이 나올 경우 False로 바뀐다
다음과 같이 구현해주었다.
a = 10
flag = True
for i in range(0, 20):
print(i)
for j in range(0, 20):
if j == a:
flag = False
break
if flag == False:
break
j for문에서 한번, i for문에서 한번. 총 두번 break를 해줌으로써 원하는 결괏값을 얻을 수 있었다.