[프로그래머스 | 파이썬 / 자바스크립트] 2차원으로 만들기(코딩테스트 입문/ level 0)

2023. 2. 20. 15:15·Problem Solving/프로그래머스
반응형
문제

https://school.programmers.co.kr/learn/courses/30/lessons/120842?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

🐍파이썬
def solution(num_list, n):
    answer = [[] for _ in range(len(num_list)//n)]
    for i in range(len(num_list)):
        answer[i//n].append(num_list[i])
    return answer

1️⃣ 리스트 컴프리헨션으로 이차원 배열을 미리 생성해준다.

2️⃣ answer 내부 배열의 인덱스가 i // n인 동안에는 해당 인덱스에 배열을 추가한다.

Ex.

num_list n result
[1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]]
[100, 95, 2, 4, 5, 6, 18, 33, 948] 3 [[100, 95, 2], [4, 5, 6], [18, 33, 948]]

첫 번째 예제의 경우 answer[0]에는 num_list[0], num_list[1], answer[1]에는 num_list[2], num_list[3], answer[2]에는 num_list[4], num_list[5] ... 이 들어간다.

두 번째 예제의 경우 answer[0]에는 num_list[0], num_list[1], num_list[2], answer[1]에는 num_list[3], num_list[4], num_list[5] ... 이 들어간다.

 

 

다른 풀이 방법

def solution(num_list, n):
    answer = []
    for i in range(0, len(num_list), n):
        answer.append(num_list[i:i+n])
    return answer

 

 

🐥자바스크립트
function solution(num_list, n) {
    var answer = [];
    for (let i = 0; i < parseInt(num_list.length/n); i++){
        answer.push([]);
    }
    for (let i = 0; i < num_list.length; i++){
        answer[parseInt(i/n)].push(num_list[i]);
    }
    return answer;
}

1️⃣ for문으로 빈 배열을 생성한다.

2️⃣ answer 내부 배열의 인덱스가 i / n인 동안에는 해당 인덱스에 배열을 추가한다.

Ex.

num_list n result
[1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]]
[100, 95, 2, 4, 5, 6, 18, 33, 948] 3 [[100, 95, 2], [4, 5, 6], [18, 33, 948]]

첫 번째 예제의 경우 answer[0]에는 num_list[0], num_list[1], answer[1]에는 num_list[2], num_list[3], answer[2]에는 num_list[4], num_list[5] ... 이 들어간다.

두 번째 예제의 경우 answer[0]에는 num_list[0], num_list[1], num_list[2], answer[1]에는 num_list[3], num_list[4], num_list[5] ... 이 들어간다.

 

 

다른 풀이 방법

function solution(num_list, n) {
    var answer = [];
    while(num_list.length) {
        answer.push(num_list.splice(0,n));
    }
    return answer;
}

num_list 내부에 원소가 남아있는 동안, num_list 배열의 원소를 0번째 인덱스부터 n개를 splice 하여 answer에 push

 

❓ splice(start[, deleteCount[, item1[, item2[, ...]]]])

  • 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경하는 메서드
  • start: 배열의 변경을 시작할 인덱스
  • deleteCount: 배열에서 제거할 요소의 수
  • item1, item2, <em>...</em>: 배열에 추가할 요소. 아무 요소도 지정하지 않으면splice()는 요소의 제거만 수행
  • 반환값: 제거한 요소를 담은 배열. 아무 값도 제거하지 않았으면 빈 배열을 반환

function solution(num_list, n) {
    // console.log(Array(num_list.length / n).fill([])); 
    // 출력: [ [], [], [], [] ]
    return Array(num_list.length / n).fill([]).map(() => num_list.splice(0, n))
    // 결과값: [[1, 2], [3, 4], [5, 6], [7, 8]]
}

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Problem Solving > 프로그래머스' 카테고리의 다른 글

[프로그래머스 | 파이썬 / 자바스크립트] 문자열 정렬하기 (2)(코딩테스트 입문/ level 0)  (0) 2023.02.20
[프로그래머스 | 파이썬 / 자바스크립트] 숫자 찾기(코딩테스트 입문/ level 0)  (0) 2023.02.20
[프로그래머스 | 파이썬 / 자바스크립트] 머쓱이보다 키 큰 사람(코딩테스트 입문/ level 0)  (0) 2023.02.20
[프로그래머스 | 파이썬 / 자바스크립트] 피자 나눠 먹기 (1)(코딩테스트 입문/ level 0)  (0) 2023.02.20
[프로그래머스 | 파이썬 / 자바스크립트] 직사각형 넓이 구하기(코딩테스트 입문/ level 0)  (0) 2023.02.20
[프로그래머스 | 파이썬 / 자바스크립트] 종이 자르기(코딩테스트 입문/ level 0)  (0) 2023.02.20
'Problem Solving/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 | 파이썬 / 자바스크립트] 숫자 찾기(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 머쓱이보다 키 큰 사람(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 피자 나눠 먹기 (1)(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 직사각형 넓이 구하기(코딩테스트 입문/ level 0)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍
        • Programming
        • C | C++
        • Java
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    컴퓨터네트워크
    spring boot
    백준
    프로그래머스
    타입스크립트
    클론 프로젝트
    Til
    강의내용정리
    AWS
    파이썬
    포트폴리오
    Jiraynor Programming
    mysql
    Next.js
    프로젝트
    ZeroCho
    플러터
    d3
    블로그 제작
    구현
    bfs
    자바
    자바스크립트
    리액트
    웹사이트
    SWEA
    알고리즘
    뉴렉처
    React
    공식문서
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[프로그래머스 | 파이썬 / 자바스크립트] 2차원으로 만들기(코딩테스트 입문/ level 0)
상단으로

티스토리툴바