Description
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
Constraints
n은 길이 10,000이하인 자연수입니다.
My Solution
function solution(n) {
return n % 2 === 0 ? '수박'.repeat(n / 2) : '수박'.repeat(n / 2) + '수';
}
repeat()과 삼항 연산자를 통해 간단하게 풀어보았다.
Other's Solutions
아주 간단한 문제였지만, 다양한 풀이가 있었던 풀이였다.
function solution(n) {
return '수박'.repeat(n).substring(0, n);
}
substring을 활용했다면 이렇게 더 간결하게 풀 수도 있다.
MDN을 참고하면, substring에는 시작 인덱스를 기본적으로 전달해 줘야 하고 끝 인덱스는 옵션이다.
The substring() method returns the part of the string between the start and end indexes, or to the end of the string.
즉 substring() 메서드는 문자열의 시작 인덱스와 끝 인덱스 사이 또는 문자열 끝 부분을 반환한다.
const waterMelon = n => {
return '수박'.repeat(n / 2) + (n % 2 === 1 ? '수' : '');
};
const waterMelon = n => '수박'.repeat(n).slice(0, n);
substring 대신에 비슷한 slice를 쓸 수도 있다.
위와 같은 경우에서는 substring과 slice는 동일하게 동작하지만, 다른 경우가 있기 때문에 주의해서 써야 한다.
function waterMelon(n) {
var result = '';
for (var i = 0; i < n; i++) {
result += i % 2 == 0 ? '수' : '박';
}
return result;
}
for문으로 i가 짝수인 경우에는 결과에 '수'를 더해주고, 홀수인 경우에는 '박'을 더해준다.
꼭 시간을 내서 substring, substr, slice의 공통점과 차이점을 확실히 짚고 넘어가야겠다.
'Algorithms > Programmers' 카테고리의 다른 글
[프로그래머스 Level 1] 문자열 내림차순으로 정렬하기 (자바스크립트) (0) | 2021.10.14 |
---|---|
[프로그래머스 Level 1] 문자열 다루기 기본 (자바스크립트) (0) | 2021.10.13 |
[프로그래머스 Level 1] 최대공약수와 최소공배수 (자바스크립트) (0) | 2021.10.10 |
[프로그래머스 Level 1] 자연수 뒤집어 배열로 만들기 (자바스크립트) (0) | 2021.10.10 |
[프로그래머스 Level 1] 자릿수 더하기 (자바스크립트) (0) | 2021.10.10 |