항해 프로그래머스

항해3주차 자바스크립트 프로그래머스 - 문자 반복 출력하기

완두노예 2023. 1. 27. 10:59

나의 풀이

const solution = (my_string, n) => [...my_string].map(a => a.repeat(n)).join("")
//각 문자를 split, 각문자*3, join return
//split 대신 스프레드 문법 사용해보기
//for문 대신 map사용으로 배열 반복 처리 하기
//각문자열 *n은 repeat 사용
    다른 풀이
function solution(my_string, n) {
  return my_string
    .split("")
    .map((x) => x.repeat(n))
    .join("");
}

Reduce

function solution(my_string, n) {
    return my_string.split('').reduce((acc, cur) => acc + cur.repeat(n), '')
}

 for of 문

function solution(my_string, n) {
    let ans = '';
    for (let s of my_string) ans+=s.repeat(n);
    return ans;
}
function solution(my_string, n) {
    if (!my_string || my_string.length <= 0 || my_string.length > 50) return;
    if (!n || n.length <= 0 || n.length > 50) return;

    var answer = '';

    for (let i = 0; i < my_string.length; i++) {
        const character = my_string[i];
        for (let l = 0; l < n; l++) {
          answer += character;
        }
      }
    return answer;
}

Fill, Flat

function solution(my_string, n) {
    return Array.from(my_string).map(t => Array(n).fill(t)).flat().join('');
}
function solution(my_string, n) {
    var answer = '';
    for(let i = 0; i< my_string.length; i++)
        answer+=my_string[i].repeat(n);

    return answer;
}
function solution(my_string, n) {
    var answer = '';
    for (let i =0; i < my_string.length; i++) {
      let str = my_string[i].split('');
      for (let j=0; j<n; j++) {
        answer += str;
      }
    }
    return answer;
}

3번째줄부터 헷갈림. 다시 풀이해보자

function solution(my_string, n) {
    return my_string.split('').map(s => {
        let newS = ''
        for (let i = 0; i < n; i++) {
            newS += s;
        }
        return newS;
    }).join('');
}
function solution(my_string, n) {
    let answer = ''
    for (const i of my_string.split('')) {
        answer += i.repeat(n)
    }
    return answer
}
function solution(my_string, n) {
    return my_string.split("").map((ch) => `${ch}`.repeat(n)).join("")
}
function solution(my_string, n) {
    return [...my_string].map(el => Array.from({length : n}, (v, i)=> el).join("")).join("");
}
    Map 메소드 사용방법 참고하기

https://www.freecodecamp.org/korean/news/javascript-map-method/

 

 

JavaScript Map - JS.map() 함수 사용 방법 (배열 메소드)

어떤 배열에 있는 모든 요소들의 값을 변경해서 만든 새로운 배열을 써야 할 때가 있습니다. 그 때 루프를 사용하여 배열에 대해 수동으로 반복 처리하는 대신, 간단히 기본 제공 Array.map() 메소

www.freecodecamp.org

화살표 함수 사용방법 참고하기

https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%99%94%EC%82%B4%ED%91%9C-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC