Unit 20
FizzBuzz 문제
- FizzBuzz는 매우 간단한 프로그래밍 문제이며 규칙은 다음과 같다.
- 1에서 100까지 출력한다.
- 3의 배수는 Fizz를 출력한다.
- 5의 배수는 Buzz를 출력한다.
- 3과 5의 공배수는 FizzBuzz를 출력한다.
1. 1부터 100까지 숫자 출력하기
- FizzBuzz 문제는 반복문, 조건문, 나머지 연산자, 비교 연산자를 모두 사용해야 풀 수 있다.
- 1부터 100까지 100번 반복하면서 print로 값을 출력하도록 for과 range를 사용한다.for i in range(1, 101): # 1부터 100까지 100번 반복 print(i)
2. 3의 배수일 때와 5의 배수일 때 처리하기
- 3과 5의 배수일 때 숫자 대신 'Fizz', 'Buzz'를 출력하기
- i를 3으로 나눴을 때 나머지가 0이면 3의 배수이고, 5로 나눴을 때 나머지가 0이면 5의 배수이기 때문에 if 조건문을 사용하여 3의 배수일 때 'Fizz', elif로 5의 배수일 때 'Buzz'를 출력하도록 했다.for i in range(1, 101): # 1부터 100까지 100번 반복 if i % 3 == 0: # 3의 배수일 때 print('Fizz') # Fizz 출력 elif i % 5 == 0: # 5의 배수일 때 print('Buzz') # Buzz 출력 else: print(i) # 아무것도 해당되지 않을 때 숫자 출력 # 실행결과 1 2 Fizz 4 Buzz
3. 3과 5의 공배수 처리하기
- 공배수는 논리 연산자 and를 사용한다.
- and 연산자를 사용하여 i를 3으로 나눴을 때 나머지가 0이면서 5로 나눴을 때도 나머지가 0이면 'FizzBuzz'를 출력하도록 했다. 하지만 i가 30일 때 if에서 3의 배수를 먼저 검사하면 3과 5의 공배수는 검사하지 않고 그냥 넘어가버리기 때문에 3과 5의 공배수를 먼저 검사한 뒤 elif로 3의 배수, 5의 배수를 각각 검사해야 한다.for i in range(1, 101): # 1부터 100까지 100번 반복 if i % 3 == 0 and i % 5 == 0: # 3과 5의 공배수일 때 print('FizzBuzz') # FizzBuzz 출력 elif i % 3 == 0: # 3의 배수일 때 print('Fizz') # Fizz 출력 elif i % 5 == 0: # 5의 배수일 때 print('Buzz') # Buzz 출력 else: print(i) # 아무것도 해당되지 않을 때 숫자 출력 # 실행결과 ...(생략) 11 Fizz 13 14 FizzBuzz ...
4. 논리 연산자를 사용하지 않고 3과 5의 공배수 처리하기
- 15는 3과 5의 최소공배수임을 이용하여 15로 나눴을 때 나머지가 0인 값들을 3과 5의 공배수라고 하면 된다.
- 이렇게 최소 공배수를 이용하여 코드를 작성하는 것도 좋지만 'i % 3 == 0 and i % 5 == 0' 처럼 의미를 명확하게 드러내는 것을 더 추천한다.for i in range(1, 101): # 1부터 100까지 100번 반복 if i % 15 == 0: # 15의 배수(3과 5의 공배수)일 때 print('FizzBuzz') # FizzBuzz 출력 elif i % 3 == 0: # 3의 배수일 때 print('Fizz') # Fizz 출력 elif i % 5 == 0: # 5의 배수일 때 print('Buzz') # Buzz 출력 else: print(i) # 아무것도 해당되지 않을 때 숫자 출력 # 실행결과 ...(생략) 14 FizzBuzz 16 17 Fizz ...
정리참조
https://dojang.io/course/view.php?id=7
강좌: 파이썬 코딩 도장
모두 펼치기모두 접기
dojang.io
'Python 코딩도장' 카테고리의 다른 글
파이썬 코딩도장 Unit 22 정리(1) : 리스트 조작 (0) | 2022.01.18 |
---|---|
파이썬 코딩도장 Unit 21 정리 : 터틀 그래픽스 (0) | 2022.01.17 |
파이썬 코딩도장 Unit 19 정리 : 중첩 루프 사용 (0) | 2022.01.16 |
파이썬 코딩도장 Unit 13 ~ Unit 20 심사문제 풀이 (0) | 2022.01.16 |
파이썬 코딩도장 Unit 18 정리 : break, continue로 반복문 제어 (0) | 2022.01.15 |