실행 시간 제한 | 메모리 제한 |
---|---|
1 초 | 10 MB |
이번 시간에는 반복문 중 하나인 while 문에 대해 배워볼거에요
들어가기에 앞서 한가지 상황을 봅시다.
다음 중 사과의 개수는?
앞에서 소개한 For 문과 비슷한 문제가 주어졌을 때, While 문으로도 코드를 작성하여 해결할 수 있어요.
그런데! For 문은 순서대로 '한칸씩 순회'하는 느낌이 강하지만,
While 문에서는 '조건식'으로 반복문이 재실행되거나 종료되는 구조를 갖습니다.
While 문은 결과값이 Boolean으로 나타나는 조건식을 주고, 그 조건식이 False 가 나타날 때 까지 반복된 코드를 실행할 수 있어요.
python 에서는 while 문을 다음과 같이 작성합니다.
while 조건식:
조건식을 만족할 때 실행할 코드
그럼 While 문으로 앞에 주어진 문제를 해결하기 위한 코드를 작성한다면 어떻게 컴퓨터에게 요청할까요?
위의 상황을 코드로 작성해볼까요?
elements = ['사과', '딸기', '바나나', '포도', '사과', '딸기', '포도', '사과', '딸기', '바나나']
count = 0
i = 0
while i < len(elements):
fruit = elements[i]
if fruit == '사과': # 만약 fruit이 '사과'라면?
count = count + 1
i = i + 1
print(count)
# 결과
# 3
위의 코드는 i라는 변수로 0부터 len(elements) - 1 까지의 elements의 값(fruit)을 가져와 그 값(fruit)이 '사과' 라면 count를 +1하는 코드에요
이때 주목해야 하는 점은 for 문과 비슷한 기능을 수행할 수 있지만, while 문은 조건식을 통해 반복이 종료된 다는 점에 차이점이 있다는 거에요!
특히 반복문을 탈출하기 위한 조건식의 값이 불규칙적으로 변화되는 경우에는 while 문을 사용해야 합니다.
while 문은 주로 반복 조건(Loop 탈출 조건)이 필요한 경우에 사용되고, 일반적으로는 for 문을 많이 사용해요
특히 while 문을 작성하실 때에는 반복의 종료문이 있는지 없는지를 반드시 확인 해야합니다. 그렇지 않으면, 코드가 종료되지 않아 무한 루프에 빠지기 쉽습니다. (알고리즘의 성립 조건)
반면에 for 문은 종료시점이 쉽게 예측되기 때문에 코드를 이해하기 쉬워요.
그렇다고 무조건 for 문을 사용하기 보단, 상황에 맞게 코드를 작성하시면 됩니다.
이제 실습해볼까요?
실습 문제
임의의 과일 리스트와 하나의 과일 이름이 주어집니다.
이때, 주어진 과일 이름이 과일 리스트에 몇 개 담겨있는지 구하세요.
첫 번째 줄에는 과일 이름들이 나열되어 있고
두 번째 줄에는 개수를 세야 하는 과일의 이름이 주어집니다.
주어진 과일 이름이 과일 리스트에 몇 개 담겨있는지 출력합니다.
딸기,오렌지,사과,사과,포도,수박,바나나,오렌지,포도 포도
2
딸기,오렌지,사과,사과,포도,수박,바나나,오렌지,포도 수박
1
출처: 돌핀 코딩