빗방울

빗방울

쉬움

소개

Raindrops는 고전적인 면접 질문인 FizzBuzz 챌린지를 조금 더 복잡하게 만든 버전이에요.

지침

이 과제에서는 숫자를 그에 해당하는 빗방울 소리로 변환해요.

주어진 숫자가 다음과 같은 경우:

  • 3으로 나누어떨어지면 결과에 "Pling"을 더해요.
  • 5로 나누어떨어지면 결과에 "Plang"을 더해요.
  • 7로 나누어떨어지면 결과에 "Plong"을 더해요.
  • 3, 5, 7로 나누어떨어지지 않으면 결과는 그 숫자를 문자열로 나타낸 값이어야 해요.

예시

  • 28은 7로 나누어떨어지지만 3이나 5로는 나누어떨어지지 않아요. 따라서 결과는 "Plong"이 돼요.
  • 30은 3과 5로 나누어떨어지지만 7로는 나누어떨어지지 않아요. 따라서 결과는 "PlingPlang"이 돼요.
  • 34는 3, 5, 7로 나누어떨어지지 않아요. 따라서 결과는 "34"가 돼요.
Note

어떤 숫자가 다른 숫자로 나누어떨어지는지 확인하는 흔한 방법은 나머지나 모듈로를 0과 비교하는 거예요. 대부분의 언어는 이 둘 중 하나(또는 둘 다)를 위한 연산자나 함수를 제공해요.

힌트

  • 이 문제를 좀 더 일반적인 방식으로 생각해 봐요. (fizz buzz)[https://en.wikipedia.org/wiki/Fizz_buzz] 문제를 알고 있다면, 여기서는 두 개가 아니라 세 개의 조건이 있다는 점만 빼고 비슷해요. 언젠가 네 개, 다섯 개, 심지어 열 가지 종류의 빗방울까지 확장하고 싶을 수도 있다고 생각하면, 이걸 어떻게 구현해 볼 수 있을까요?
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
F# Exercism

빗방울 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 F# 트랙을 개념 18개연습 문제 148개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.

빗방울 깊이 살펴보기!

함수형 파이프라인, 행렬 곱셈, 매크로를 사용해 미리 계산한 표 기반 풀이, 객체 지향 접근법, Python과 TCL을 모두 인상적으로 활용한 풀이, 그리고 엔터프라이즈 에디션까지 다양한 풀이를 살펴봐요.