반응형
🔍 문제 요약
https://school.programmers.co.kr/learn/courses/30/lessons/12922
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
길이가 n이거 '수'와 '박'이라는 단어가 번갈아 가면서 나오는 문장을 반환하는 문제
🧠 나의 접근 방식과 시행착오
3분 정도 걸린 문제. stringBuilder를 쓰긴 했지만 더 간단한 방법이 있었던 거 같은 느낌이 들어서 피드백이 필요할 듯 하다. 필자가 푼 방법은 그저 인덱스가 홀수일 때와 짝수일 때를 구분해서 stringBuilder에 넣고 반환하는 거 뿐...
using System.Text;
/// <summary>
/// 수박수박수박수박수박수?
/// https://school.programmers.co.kr/learn/courses/30/lessons/12922
/// </summary>
public string solution(int n)
{
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < n; i++)
{
if (i % 2 == 0)
{
stringBuilder.Append('수');
}
else
{
stringBuilder.Append('박');
}
}
return stringBuilder.ToString();
}
✅ 풀이 코드
3항 연산자를 써서 좀 더 간단하게 된 거라 큰 피드백은 아니다.
public string solution(int n)
{
var sb = new StringBuilder();
for (int i = 0; i < n; i++)
{
sb.Append(i % 2 == 0 ? '수' : '박');
}
return sb.ToString();
}
두번째 피드백으로 준 건 문자열 반복과 잘라내기를 쓴 방법인데, 처음 본 Enumerable.Repeat를 쓴 것이라 코드 첨부. 아래와 같이 반복되는 것을 저렇게 도출할 수 있는 듯 하다. 속도가 비슷하거나 조금 빠를 수 있다고 한다. (다만 가독성 측면에서 떨어짐)
public string solution(int n)
{
return string.Concat(Enumerable.Repeat("수박", n / 2)) + (n % 2 == 1 ? "수" : "");
}
🔄 정리
신기한 방식인 Enumerable.Repeat라는 방법도 있다는 것을 기억해두는 정도면 될 듯 하다.
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[Lv.1] 하샤드 수 [프로그래머스_코딩테스트] [수학] [10분] (0) | 2025.07.01 |
---|---|
[Lv.1] 짝수와 홀수 [프로그래머스_코딩테스트] [조건문] [5분] (0) | 2025.07.01 |
[Lv.2] 행렬의 곱셈 [프로그래머스_코딩테스트] [2차원 배열, 구현] [25분] (0) | 2025.06.30 |
[Lv.1] 핸드폰 번호 가리기 [프로그래머스_코딩테스트] [문자열] [10분] (0) | 2025.06.30 |
[Lv.2] 의상 [프로그래머스_코딩테스트] [해시] [25분] (0) | 2025.06.29 |