Algorithm/문제풀이

[Python][Programmers] 기초문제_12912, 12944, 12950, 12937, 12935

Deveun 2021. 5. 5. 18:52

- [12912] 두 정수 사이의 합

def solution(a, b):
    a,b=min(a,b),max(a,b)
    result = sum((range(a,b+1)))

    return result

: a, b 사이의 모든 숫자의 합 구하기. 단, a < b 이거나 a = b 인 경우도 있음.

--> range(minNum, maxNum) 을 사용하고 sum() 을 사용해 합을 구했음

 

 

- [12944] 평균 구하기

def solution(arr):
    
    answer = sum(arr)/len(arr)
    return answer

 

- [12950] 행렬의 덧셈

def solution(arr1, arr2):
    
    ### 풀이 1
    # answer = []
    # for i in range(len(arr1)):
    #     ans = []
    #     for j in range(len(arr1[0])):
    #         ans.append(arr1[i][j] + arr2[i][j])
    #     answer.append(ans)
    # return answer
    
    ### 풀이 2
    for idx, a1 in enumerate(arr1):
        for idx2, a in enumerate(a1):
            arr2[idx][idx2] += a
    return arr2

: arr1과 arr2 각 요소의 합 구하기

풀이 1 --> index값으로 반복문 수행하면서 각각의 요소를 더해 새로운 리스트에 넣어줌

풀이 2 --> enumerate 사용 (index, 값) 별로 반복문

 

+++ 다른사람 풀이 참고 

import numpy as np
def Solution(arr1, arr2):
    A = np.array(arr1)
    B = np.array(arr2)
    return (A+B).tolist()

--> numpy 모듈 사용 (numpy 에서 배열의 사칙연산은 각 요소별로 수행됨)

 

- [12937] 짝수와 홀수

def solution(num):
    answer = 'Even' if num%2 == 0 else 'Odd'
    return answer

 

- [12935] 제일 작은 수 제거하기

def solution(arr):
    
    ### 풀이1
    # arr_ = arr[:]
    # arr_.sort()
    # arr.remove(arr_[0])
    # answer = arr if len(arr) != 0 else [-1]
    
    ### 풀이2
    arr.remove(min(arr))
    answer = arr if len(arr) != 0 else [-1]
    
    return answer

--> 리스트 요소 삭제시에

arr.remove('a') : 첫번째 'a' 값을 삭제

del arr[i] : arr[i] 값을 삭제