Machineboy空
Excercism - Raindrop 본문
문제요약
3,5,7의 배수인지 살피고 조건에 맞는 문자를 출력하라!
난이도
Easy
풀이 포인트
- 나는 Flag로 중복을 방지했다
- 모범 풀이는 애초에 정해진 길이의 StringBuilder를 사용했다.
REVIEW
이런 난이도가 쉬운 문제는 아이디어에 따라 꽤 코드가 달라진다.
나는 Flag로 해당 조건이 이미 만족되었는지를 체크했다. 45줄은 된다.
그런데 모범 풀이는 더욱 가독성 좋게 15줄로 해결했다..
그래서 기록해둔다!
CODE
using System.Globalization;
using System.Text;
public static class Raindrops
{
public static string Convert(int number)
{
var drops = new StringBuilder(15);
if (number % 3 == 0) drops.Append("Pling");
if (number % 5 == 0) drops.Append("Plang");
if (number % 7 == 0) drops.Append("Plong");
return drops.Length > 0 ? drops.ToString() : number.ToString(CultureInfo.InvariantCulture);
}
}
public static class Raindrops
{
public static string Convert(int number)
{
string answer = "";
bool isThreeContained = false, isFiveContained = false, isSevenContained = false;
if(number <= 1) return number.ToString();
while(number != 1){
if(number%3 == 0)
{
number/=3;
if(!isThreeContained){
answer += "Pling";
}
isThreeContained = true;
}else if(number%5 == 0)
{
number /= 5;
if(!isFiveContained)
{
answer += "Plang";
}
isFiveContained = true;
}else if(number%7 == 0)
{
number /=7;
if(!isSevenContained)
{
answer += "Plong";
}
isSevenContained = true;
}else
{
if(answer == "") return number.ToString();
break;
}
}
return answer;
}
}
'Computer > Coding Test' 카테고리의 다른 글
Excercism - Matrix : 2차원 배열 (0) | 2025.02.28 |
---|---|
Excercism - LargestSeriesProduct LINQ 연습 Skip Take (0) | 2025.02.27 |
Excercism - Simple Cipher, 아스키 코드, 시저암호, 비젠네르 암호 (0) | 2025.02.26 |
Excercism - Wordy 문자열 다루기, Split, Replace, int.tryParse (0) | 2025.02.20 |
Excercism - Matching Brackets 괄호닫기 (0) | 2025.02.19 |