Skip to main content

코사인으로 풀어보는 FizzBuzz 문제: 초보자를 위한 쉽고 재미있는 접근법

Published 3 min readMarkdown

# 📌 서론 – 왜 FizzBuzz인가?

프로그래밍 입문자라면 FizzBuzz 문제를 들어본 적이 있을 겁니다.

숫자를 1부터 차례대로 출력하면서 3의 배수는 “Fizz”, 5의 배수는 “Buzz”, 15의 배수는 “FizzBuzz”로 바꾸는 아주 간단한 과제죠.

하지만 이 간단함 속에 숨은 알고리즘 사고력을 키우는 좋은 연습문제라는 점, 그리고 코사인 함수 같은 수학적 도구를 활용해 새로운 시각으로 풀어볼 수 있다는 점을 알고 계셨나요?

이번 포스트에서는 코사인 함수를 이용해 FizzBuzz를 구현하는 방법을 단계별로 설명하고, 직접 파이썬 코드를 작성해 보는 과정을 통해 프로그래밍 기초와 수학적 사고를 동시에 강화해 보겠습니다.


# 🧩 본론

# 1️⃣ FizzBuzz 기본 로직 이해하기

먼저 전통적인 방법을 복습합니다.

python

for i in range(1, 101):

    if i % 15 == 0:

        print('FizzBuzz')

    elif i % 3 == 0:

        print('Fizz')

    elif i % 5 == 0:

        print('Buzz')

    else:

        print(i)

위 코드는 모듈러 연산(%)을 이용해 배수를 판별합니다. 초보자에게는 직관적이지만, 연산이 여러 번 일어나기 때문에 “수학적 트릭”을 적용하면 더 간결하게 만들 수 있습니다.


# 2️⃣ 코사인 함수로 배수 판별하기

코사인 함수 cos(θ)는 각도가 π(파이)의 배수일 때 -1 혹은 1 값을 가집니다. 이를 이용해 3·n, 5·n, 15·n을 판별하는 아이디어는 다음과 같습니다.

  • cos(π * i / 3) : i가 3의 배수이면 cos 값이 -1이 됩니다.

  • cos(π * i / 5) : i가 5의 배수이면 -1.

  • 두 값을 곱하면 15의 배수는 1이 되고, 나머지는 -1 혹은 다른 값이 됩니다.

이를 파이썬 math 모듈의 cos와 round 함수를 활용해 구현하면 다음과 같습니다.

python

import math

def fizzbuzz_cosine(n):

    c3  = round(math.cos(math.pi * n / 3))   # 3의 배수면 -1, 아니면 1

    c5  = round(math.cos(math.pi * n / 5))   # 5의 배수면 -1, 아니면 1

    c15 = round(math.cos(math.pi * n / 15))  # 15의 배수면 -1, 아니면 1

    if c15 == -1:          # 15의 배수

        return 'FizzBuzz'

    elif c3 == -1:         # 3의 배수

        return 'Fizz'

    elif c5 == -1:         # 5의 배수

        return 'Buzz'

    else:

        return str(n)

핵심 포인트

  • cos 함수는 부동소수점 연산이므로 round 로 반올림해 -1 혹은 1을 명확히 구분합니다.

  • c15를 먼저 검사하면 FizzBuzz가 우선 출력됩니다.


# 3️⃣ 전체 실행 예시와 결과 확인

python

for i in range(1, 31):

    print(fizzbuzz_cosine(i))

출력은 기존 구현과 동일합니다.


1
2

Fizz

4
Buzz

Fizz

7
8

Fizz

Buzz

11

Fizz

13

14

FizzBuzz

...

코사인 기반 구현은 연산 횟수가 거의 동일하지만, 수학적 아름다움을 느낄 수 있다는 점이 매력입니다. 또한, if-elif-else 구조를 그대로 유지하므로 초보자도 쉽게 이해할 수 있습니다.


# 4️⃣ SEO 키워드 활용 팁

블로그 글을 검색 엔진에 최적화하려면 키워드를 자연스럽게 배치해야 합니다. 이번 포스트에 포함된 3가지 SEO 키워드는 다음과 같습니다.

  1. FizzBuzz – 문제 자체와 파이썬 구현을 설명할 때 반복 사용.

  2. 코사인 함수 – 수학적 접근법을 소개하는 핵심 용어.

  3. 파이썬 구현 – 코드 예시와 함께 구체적인 언어명을 강조.

키워드가 들어간 문장을 적절히 배치하면 검색 노출이 향상됩니다.


# 🚀 결론 – 직접 구현해보고 나만의 변형 만들기

코사인 함수를 활용한 FizzBuzz는 단순히 문제를 푸는 것을 넘어 수학과 프로그래밍을 연결하는 좋은 연습이 됩니다.

  1. 위 코드를 복사해 로컬 환경에 붙여넣고 실행해 보세요.

  2. cos 대신 sin이나 tan을 써도 같은 원리로 구현이 가능한지 실험해 보세요.

  3. 결과를 콘솔이 아닌 웹 페이지나 GUI 애플리케이션으로 시각화하면 더욱 흥미로운 프로젝트가 됩니다.

도전 과제: 7·n, 11·n 같은 새로운 배수 규칙을 추가하고, 코사인 대신 다른 삼각함수를 조합해 보세요.

프로그래밍 실력도, 수학적 감각도 한 단계 업그레이드된 당신을 기대합니다!


관련 링크: Solving Fizz Buzz with Cosines (Reddit)

궁금한 점이나 직접 만든 변형 코드가 있다면 댓글로 공유해 주세요. 함께 배우고 성장하는 커뮤니티가 되길 바랍니다. 🎉

No comments yet. Be the first to comment.

More from this blog