1) 4번 줄에서 a를 입력받으면 다음과 같습니다.
['O', 'O', 'X', 'X', 'O', 'X', 'X', 'O', 'O', 'O']
2) 7~8번 줄에 의해 a에 있는 모든 X가 지워집니다. 이제 a는 아래와 같습니다.
['O', 'O', 'O', 'O', 'O', 'O']
3) 10번 줄의 for문의 내부는 총 6번 실행될 겁니다.
3-1) 11번 줄의 for문의 내부는 19번 실행됩니다.
3-1-1) j = 1일 때 12번 줄의 if문은 항상 참입니다.
3-1-2) 그 결과 14번 줄에서 x에는 1이 더해지겠군요.
3-1-3) j가 1이 아니면 12번 줄의 if문은 항상 거짓입니다. a[i]는 항상 'O'인데, 비교대상인 'O'*j는 'OOO'나 'OOOOO'같은 문자열이 될테니까요. (각각 j = 3, 5일 때의 결과입니다)
4) 17번 줄에서 출력될 x의 값은 얼마일까요? 10번 줄에서 실행된 for문의 횟수와 동일합니다. 왜일까요? 10번 줄이 실행되는 횟수와 14번 줄이 실행되는 횟수가 같고, 14번 줄이 실행될 때는 j가 1일 때밖에 없기 때문입니다.
그 결과로 6이 출력됩니다.
코드가 실행되는 과정을 스스로 따라가는 것은 어렵지 않습니다. print문을 활용해서 아래처럼 직접 중간 결과값을 확인해볼 수 있습니다.
tree1997 2년 전