Programming/Python

[Python 3.7] 파이썬 FizzBuzz Test

Nirsa 2019. 12. 11. 01:08
반응형

 

파이썬의 피즈버즈 테스트(FizzBuzz Test)는 프로그레머의 기초 역량을 확인할 때 사용되기도 한다.

 

복잡하고 어려운 코드로 실력을 판가름 한다기 보다는 문제에 대한 이해력을 테스트하는 문제이고, 실제로 많은 프로그래머들이 실수를 한다고 한다.

 

- 조건

1) 1부터 200까지의 숫자를 출력 한다.

2) 3의 배수는 숫자 대신 "Fizz" 를 출력한다.

3) 5의 배수는 숫자 대신 "Buzz" 를 출력한다.

4) 3과 5의 공배수는 "FizzBuzz" 를 출력한다.

 

위의 조건에 맞춰 간단히 프로그램을 만든다면 아래와 같다.

 

    for i in range(1, 201):
    if i % 3 == 0 and i % 5 == 0:         ## 3과 5의 공배수를 확인, i % 15 == 0 으로 작성해줘도 상관 없다.
        print('FizzBuzz')
        continue
    elif i % 3 == 0:                             ## 3의 배수를 확인
        print('Fizz')
        continue
    elif i % 5 == 0:                             ## 5의 배수를 확인
        print('Buzz')
        continue
    print(i)                                       ## 숫자를 출력

 

for 반복문을 이용해 1부터 200까지의 숫자를 출력하고 3의 배수는 Fizz, 5의 배수는 Buzz, 3과 5의 공배수는 FizzBuzz를 출력하게 된다.

굉장히 단순한 코드지만 주의해야 할 점은 다음과 같다.

 

- 주의 사항

1. 맨 아래에서 print(i) 로 숫자를 출력하므로, if 조건문에 continue를 넣어 주어야 한다.

 -> 넣지 않는다면 숫자가 같이(Fizz와 3, Buzz와 5, FizzBuzz와 15) 같이 출력 된다.

2.  if i % 3 == 0 and i % 5 == 0: 를 if 조건문 중 맨 위에 두어야 한다.

 -> 중간이나 아래에 위치할 경우 위의 3또는 5의 배수 조건문이 성립 후 넘어가게 되므로 3과 5의 공배수 조건식은 실행되지 않는다

 

반응형