티스토리 뷰
문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어 있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 ≤ my_string 길이 ≤ 5
- 2 ≤ n ≤ 10
- "my_string"은 영어 대소문자로 이루어져 있습니다.
입출력 예
my_string | n | result |
"hello" | 3 | "hhheeellllllooo" |
입출력 예 설명
입출력 예 #1
- "hello"으 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.
풀이
JavaScript
나의 풀이
반복이라는 말이 나오길래 '반복문을 써야겠다.' 생각했다. 그래서 반복문을 사용했다!
function solution(my_string, n) {
let answer = "";
for (let i = 0; i < my_string.length; i++) {
for (let j = 0; j < n; j++) {
answer += my_string.charAt(i)
}
}
return answer;
}
너무나도 단조로운 코드였다.
kim870380 , 2DC , 솔 , heejiyang 외 3 명의 풀이
function solution(my_string, n) {
var answer = [...my_string].map(v => v.repeat(n)).join("");
console.log(answer);
return answer;
}
일단 소감을 말하자면 코드가 기가 막힌다. 어떻게 이런 생각을 할 수 있는 걸까...!
코드 설명
예제로 각 함수들이 어떤 역할을 하는지 알아보자!
[...my_string]에 대해 잘 몰랐었는데 이번에 찾아보니 Destructuring assignment(구조 분해 할당)이라는 문법이었다.
만약 아래와 같이 예제 코드를 짠다면
// 예제 코드
let str = "hello";
let answer = [...str];
console.log(answer);
answer의 값은 아래와 같이 나온다.
여기에 .map으로 배열의 요소 하나하나를 빼내어 v.repeat(n)으로 n번 반복 해준다.
// 예제 코드
let str = "hello";
const n = 3;
let answer = [...str].map(v => v.repeat(n));
console.log(answer);
여기에 .join("")을 사용하여 배열 요소 요소 사이에 ""로 붙여주면 완성이다.
// 예제 코드
let str = "hello";
const n = 3;
let answer = [...str].map(v => v.repeat(n)).join("");
console.log(answer);
이 코드를 머리로 생각해서 쓴 사람들은 정말 대단한 거 같다. 부럽다! 👏👏👏👏👏
프로그래머스에서 푼 문제를 복습하는 공간입니다.
https://programmers.co.kr/
'프로그래머스 코딩테스트' 카테고리의 다른 글
[Python] 옷가게 할인 받기 (0) | 2023.02.22 |
---|---|
[Python, JavaScript, Java] 숫자 찾기 (0) | 2023.02.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- html
- 객체
- Object
- HTML 기본
- method
- Type
- html table
- 프로그래머스
- Python
- 동기코딩
- css position
- 함수
- padding
- Array
- function
- 메서드
- if문
- Margin
- javascript
- 자바스크립트
- 타입스크립트
- CSS 포지션
- em
- 타입 좁히기
- 반복문
- 실수
- Typescript
- for문
- CSS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함