본문 바로가기

알고리즘

코딩 테스트 연습 12일, 13일

728x90

코딩 테스트 연습 12일, 13일


프로그래머스, n의 배수 고르기

 

📄 내 코드

n = 12
numlist = [2, 100, 120, 600, 12, 12]



def solution(n, numlist):
    answer = []

    for num in numlist:
        if num % n == 0:
            answer.append(num)

    return answer

print(solution(n, numlist))

list.remove 사용해야하는 줄 알았는데. 아니었다.

주어진 값을 변경하지 않는게 좋은 것 같다.

 

📌 공부할만한 코드

def solution(n, numlist):
    answer = [i for i in numlist if i%n==0]
    return answer

프로그래머스, 2차원으로 만들기

 

📄 내 코드

num_list = [100, 95, 2, 4, 5, 6, 18, 33, 948]
n = 3

def solution(num_list, n):
    answer = []

    m = 0
    for i in range(len(num_list) // n):
        answer.append(num_list[m:m + n])
        m += n

    return answer

print(solution(num_list, n))

이 문제 역시 바로 num_list[n-2:n] 이렇게 접근했었다.

하지만, 이런 식의 접근은 역시 위험했다. n값이 for문에 들어가면 2,4,8,16,...로 바뀐다.

내가 원하는 계산은 2,4,6,8,...인데 말이다.!!

새로운 변수를 쓰면서 기존 n값은 for문안에서 값이 변경되지 않도록 해야 한다.

 

📌 공부할만한 코드

import numpy as np
def solution(num_list, n):
    li = np.array(num_list).reshape(-1,n)
    return li.tolist()

'알고리즘' 카테고리의 다른 글

코딩 테스트 연습 15일&16일  (0) 2022.12.16
코딩 테스트 연습 14일  (0) 2022.12.14
타임어택 특강  (0) 2022.12.01
자료구조 3주차_큐&해쉬  (0) 2022.11.28
자료구조 2주차 복습&숙제  (0) 2022.11.28