Data_10기

Python 기본 문법 - 조건문과 반복문 연습

senu 2025. 11. 6. 21:25

반복문 연습문제 1) 리스트 안에 특정 숫자가 몇 번 등장하는지 출력하기

numbers = [1, 2, 3, 4, 2, 2, 5, 2]

# 출력예시
# 리스트에서 2는 4회 등장합니다!

 

# 내가 작성한 코드
num2 = int(input())

for num in numbers:
	count = numbers.count(num2)

print(f"리스트에서 {num2}은 {count}회 등장합니다!")

 

count( ) 함수를 배웠던 것이 기억나 간단하게 count( )함수를 사용하였는데, 이 문제의 힌트를 보니 'count += 1'를 사용해서 작성하기를 기대했던 것 같아 다시 작성해보았다.

 

# 문제에서 요구한 방향으로 짠 코드
number = int(input())

count = 0

for num in numbers:
    if num == number:
        count += 1
        
print(f"리스트에서 {number}은 {count}회 등장합니다!")

 


반복문 연습문제 2) 리스트에 포함된 모든 숫자의 합을 계산하는 프로그램을 작성하기

numbers = [10, 20, 30, 40, 50]
total_sum = 0

# 출력예시
# 150

 

문제에서 total_sum이 0이라고 알려주었으므로 total_sum에 numbers 리스트를 순회하며 요소들을 하나하나 더하면 최종적으로 리스트에 포함된 모든 숫자의 합이 계산되겠다고 생각을 하게 되었다. 그래서 다음과 같이 코드를 짰다:

# 내가 작성한 코드
for num in numbers:
    total_sum += num

print(total_sum)

 

근데 문제 힌트를 보면 print({total_sum})으로 되어있던데 이건 왜 그런거지? 왜 total_sum을 중괄호에 넣었을까? 아 이거 어디서 봤는데 f-string처럼 아예 변수 자체를 넣은걸까? 너무 어려워!

 


반복문 연습문제 3) 팩토리얼 계산해 보기

팩토리얼은 n! = n * (n-1) * (n-2) * ... * 1 로 정의되고, 0! = 1로 정의된다. 이때 문제에서 주어진 숫자에 대한 팩토리얼 결과를 계산하는 프로그램을 작성해보자.

number = 5

# 출력예시
# 120

 

이 문제를 보고 범위를 지정해서 반복하는 for 변수 in range(시작값, 끝값+1) 구문이 생각났다. 5!은 1~5까지의 숫자를 모두 곱하면 된다. 그렇기에 range( ) 안에 시작걊 = 1, 끝값 +1 = 5 +1 = 6 즉, (1,6)을 넣어 1부터 5까지 반복할 수 있도록 했다.

# 내가 작성한 코드
a = 1

for i in range(1,6):
    a = a * i

print(a)

 

처음에는 5부터 4, 3, 2, 1 이렇게 내려오도록 곱하고 싶었는데 한계가 있었다. 그래서 어차피 해당 숫자 이하의 모든 정수를 곱하면 되는 것이기에 생각을 바꿔 위와같은 코드를 짰다. 거꾸로 내려오면서 곱해지는 코드도 짤 수 있도록 더 고민해봐야겠다.