728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/120842
내 풀이
def solution(num_list, n):
answer = [[0]*n for i in range(len(num_list) // n)]
idx = 0
for i in range(len(num_list) // n):
for j in range(n):
answer[i][j] = num_list[idx]
idx += 1
return answer
먼저, 2차원 배열의 기본 형태를 만든다. 바깥배열의 크기는 num_list를 n만큼 나눈 것으로 지정하고, 안쪽 배열의 크기는 n으로 지정한다.
다음, idx라는 변수를 지정하여 num_list의 원소를 채울 것인데,
이때, answer 배열을 차례대로 돌며 idx를 하나씩 증가시켜 각 값을 채우게 된다.
다른 사람 풀이
def solution(num_list, n):
answer = []
for i in range(0, len(num_list), n):
answer.append(num_list[i:i+n])
return answer
다른 사람 풀이를 보니 num_list의 인덱스를 슬라이싱하는 방법으로 문제를 해결하였다.
먼저 i라는 변수는 0부터 num_list의 개수만큼 n씩 증가를 한다.
즉, 테스트 케이스를 기준으로 i는 0, 2, 4, ..가 된다는 것이다.
이때, i부터 i+n만큼의 answer에 채우는 형식으로 answer을 만든다.
느낀점
처음에는 num_list를 순회하는 방법에 꽂혀서 시간이 오래걸렸다.
생각해보니 굉장히 단순한 문제였다!
근데 왜 나처럼 푼 사람이 없지....? ㅠㅠ
728x90
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 0 합성수 찾기 (0) | 2024.03.02 |
---|---|
[프로그래머스][PYTHON] Lv. 0 영어가 싫어요 (0) | 2024.02.29 |
[프로그래머스][PYTHON] Lv. 0 피자 나눠 먹기 (2) (1) | 2024.02.23 |
[프로그래머스][PYTHON] Lv. 0 최빈값 구하기 (0) | 2024.02.23 |
[프로그래머스][PYTHON] Lv. 0 중앙값 구하기 (0) | 2024.02.22 |