본문 바로가기

내일배움 캠프/TIL

2023 04 04 코딩 테스트 2차원으로 만들기

문제 설명

정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 

다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.

num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다.

 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.

제한사항

num_list의 길이는 n의 배 수개입니다.
0 ≤ num_list의 길이 ≤ 150
2 ≤ n < num_list의 길이

 

해당 문제를 풀기위해서 리스트컴프리헨션을 이용해서

1차원 배열을 2차원 배열로 바꾸려고 생각했습니다

[[a]for a in range(0,len(num_list),n)]

처음에 해당코드로 range의 범위 설정은 성공 하였지만 그다음에

앞에있는 for문에서 원하는 만큼 짤라서 하는법이

 

생각이 안나서 문제 해결을 못하고있었다가

a의 값에서 N만큼 추가한 만큼의 범위의

인덱스만 출력이 되면 원하는 데이터를 찾아낼수 있다는걸 알고

[num_list[b] for b in range(a,a+n)]

해당코드를 통해서 0일떄는 0이랑 1 2일떄는 2랑 3 이런식으로

2차원 배열이 출력되게했습니다

[[num_list[b] for b in range(a,a+n)]for a in range(0,len(num_list),n)]