반응형

문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/120842
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📝 문제 설명
정수 배열 num_list와 정수 n이 주어질 때, num_list를 n개의 요소씩 묶어 2차원 리스트로 변환하는 프로그램을 작성하세요.
🔹 제한사항
조건 / 설명
num_list의 길이 | n의 배수 (즉, 나누어떨어짐) |
0 ≤ num_list의 길이 ≤ 150 | 최대 150개의 원소 포함 가능 |
2 ≤ n < num_list의 길이 | n은 최소 2 이상이어야 함 |
🔹 입출력 예
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]] |
✅ 문제 쉽게 이해하기
✔ num_list를 n개씩 나누어 2차원 리스트로 변환해야 함
🔹 예제 1
num_list = [1, 2, 3, 4, 5, 6, 7, 8]
n = 2
👉 2개씩 묶으면:
[[1, 2], [3, 4], [5, 6], [7, 8]]
🔹 예제 2
num_list = [100, 95, 2, 4, 5, 6, 18, 33, 948]
n = 3
👉 3개씩 묶으면:
[[100, 95, 2], [4, 5, 6], [18, 33, 948]]
✅ 해결 방법 (리스트 컴프리헨션 없이 구현)
def solution(num_list, n):
result = [] # 결과를 저장할 빈 리스트 생성
for i in range(0, len(num_list), n): # 0부터 n 간격으로 반복
result.append(num_list[i:i+n]) # i부터 i+n까지 자른 리스트를 추가
return result
🔹 코드 동작 과정
📌 num_list = [1, 2, 3, 4, 5, 6, 7, 8], n = 2일 때:
i 값 / num_list[i:i+n] / result 리스트
0 | [1, 2] | [[1, 2]] |
2 | [3, 4] | [[1, 2], [3, 4]] |
4 | [5, 6] | [[1, 2], [3, 4], [5, 6]] |
6 | [7, 8] | [[1, 2], [3, 4], [5, 6], [7, 8]] |
🔹 코드 핵심 개념
✔ num_list[i:i+n] → i부터 i+n까지 슬라이싱하여 리스트로 만듦
✔ append() → result 리스트에 추가
✔ 최종적으로 result를 반환하면 2차원 리스트 완성! 🚀
📌 실행 예제
print(solution([1, 2, 3, 4, 5, 6, 7, 8], 2))
# [[1, 2], [3, 4], [5, 6], [7, 8]]
print(solution([100, 95, 2, 4, 5, 6, 18, 33, 948], 3))
# [[100, 95, 2], [4, 5, 6], [18, 33, 948]]
✅ 결론: 리스트 컴프리헨션 없이도 반복문을 활용하여 2차원 리스트 변환 가능
반응형
'IT > CodingTest' 카테고리의 다른 글
[programmers] 'OX퀴즈' 문제를 가장 간단하게 푸는 방법 (0) | 2025.03.27 |
---|---|
[programmers] '영어가 싫어요' 문제 해설 및 정답코드 (0) | 2025.03.25 |
[programmers] '삼각형의 완성조건(2)' 문제 해설 및 정답코드 (0) | 2025.03.25 |
[programmers] '공 던지기' 문제 해설 및 정답코드 (0) | 2025.03.20 |
[programmers] '주사위의 개수' 문제해설 (0) | 2025.03.17 |
[programmers] '외계행성의 나이' 문제 간단하게 풀기 (1) | 2025.02.27 |
[programmers] '가위 바위 보' 문제를 푸는 여러 가지 방법 (0) | 2025.02.25 |
[programmers] '최빈값 구하기' 문제 쉽게 풀어보기 (0) | 2025.02.22 |
댓글