[코딩 기초 트레이닝] 배열의 원소만큼 추가하기

2024. 7. 18. 01:00·코테
728x90

[코딩 기초 트레이닝] 배열의 원소만큼 추가하기

문제 링크

구분

코딩 테스트 연습 > 코딩 기초 트레이닝

풀이 요약

배열의 원소 수만큼 원소 개수를 늘리는 문제

나의 풀이

function solution(arr) {
    let answer = [];
    for (let x of arr) {
        for(let i=0; i<x; i++){
            answer.push(x)
        }
    }
    return answer;
}

이중 for문을 사용해서 x의 수만큼 원소개수를 늘리는 두번째 for문이 실행되게 코드를 짰습니다.

예를 들어, arr=[2, 3] 일때,

2에 대해 내부 for문이 두 번 실행되어 2,2 가 되고 3에 대해 내부 for문이 세 번 실행되어 3,3,3 이 됩니다.

배운점

function solution(arr) {
    return arr.flatMap((n) => Array(n).fill(n));
}
  • 이번 문제 풀이를 통해 flatMap 메서드를 알게되었습니다. ( 다른 분이 풀이하신 답안인데 더 간결하고 가독성이 좋습니다 )
  • flat은 평면화한다는 뜻으로 이중 구조를 가진 데이터를 단일 수준으로 단순화하여 펼친다는 뜻입니다.
  • flatMap 메서드는 콜백함수를 실행한 결과값이 복잡한 데이터 구조를 가지고 있으면, 이를 단순화하고 처리하기 쉬운 일차원 배열 형태로 변경시켜 최종 결과값을 리턴합니다.

map 과 flatMap 의 차이

const arr = [1, 2, 3];

const mapArr = arr.map((num) => [num, num * 2]);
console.log(mapArr); // [[1, 2], [2, 4], [3, 6]]

const flatMapArr = arr.flatMap((num) => [num, num * 2]);
console.log(flatMapArr); // [1, 2, 2, 4, 3, 6]

두 함수는 사용법이 같고, 같은 원본 배열을 복사하고 콜백 함수 또한 동일하게 작성되어있습니다.
두 함수의 차이는 map 메서드는 콜백함수의 결과값이 그대로 리턴되는 반면, flatMap 메서드는 단일구조 (일차원 배열) 혹은 객체를 리턴하는 차이가 있습니다.

728x90

'코테' 카테고리의 다른 글

[코딩 기초 트레이닝] 공백으로 구분하기 2  (0) 2024.07.18
[코딩 기초 트레이닝] rny_string  (1) 2024.07.18
[코딩 기초 트레이닝] 문자열 바꿔서 찾기  (0) 2024.07.17
[코딩 기초 트레이닝] 공배수  (0) 2024.07.09
[코딩 기초 트레이닝] n의 배수  (1) 2024.07.09
'코테' 카테고리의 다른 글
  • [코딩 기초 트레이닝] 공백으로 구분하기 2
  • [코딩 기초 트레이닝] rny_string
  • [코딩 기초 트레이닝] 문자열 바꿔서 찾기
  • [코딩 기초 트레이닝] 공배수
Yura 🌼
Yura 🌼
만나서 반갑습니다. 어려운 내용을 쉽게 설명하고 싶은 프론트엔드 개발자 김유라입니다.
  • Yura 🌼
    쉽게 설명할 수 없으면, 아는 것이 아니다 ✍️
    Yura 🌼
    • Yura (72)
      • FE (6)
      • BE (14)
      • 코테 (52)
  • 최근 글

  • 링크

    • Github
    • LinkedIn
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.3
Yura 🌼
[코딩 기초 트레이닝] 배열의 원소만큼 추가하기
상단으로

티스토리툴바