[프로그래머스][LV.0] 두 수의 합, 두 수의 차, 두 수의 곱 | python3

2025. 1. 14. 19:22프로그래머스/LV.0

 

문제 링크: 두 수의 합 | 두 수의 차 | 두 수의 곱 

 

문제 설명

문제 설명

그냥 두 수의 합과 차, 곱을 구하라는 문제

제한사항

 


문제 풀이

간단한 문제지만 사람들이 람다 함수로 풀길래 람다함수에 대해 공부할겸 정리한다.

 ♠ 람다함수
- 한 줄로 함수를 표현
- 구성이 간단하여 간단한 연산을 하는데 사용된다
- lambda <인자> : <인자 활용 수행 코드>
  => <인자>를 전달하면<인자 활용 수행 코드>를 수행하여 결과를 바로 반환  
       인자는 콤마(,)로 구분하여 여러 개 사용 가능

 

내코드

def solution(num1, num2):
    return lambda num1,num2 : num1+num2
    
def solution(num1, num2):
    return lambda num1,num2 : num1 - num2
    
def solution(num1, num2):
    return lambda num1, num2 : num1*num2

 

람다를 활용하여 풀어봤다.

 


더보기
더보기
더보기

다른사람풀이

 

solution=lambda *x:sum(x)

이런 풀이도 있었다.

람다는 익명함수 이며, *x는 함수로 들어오는 인수를 튜플로 패킹한다는 뜻이라고 한다.

흠....*x가 이해가 안된다.

'print(*x)할 때는 언패킹해서 프린터하던데 람다도 일급함수니까 함수에서 *연산자를 사용하면 패킹을 하는거'  이런 댓글이 있었다.

 

♣ *연산자

- 패킹 언패킹과 관련이 있다

- 패킹 연산자로 사용하면 매게변수 앞에 *를 붙여 가변 인자들을 하나로 묶어 함수에 전달한다.

 

이 부분에 대해서는 더 공부하고 따로 글을 올려야 할 것 같다.

 

def solution(num1, num2):
    #return num1 * num2
    i = 0
    answer = 0
    while i < num2:
        answer += num1
        i += 1
    return answer

이건 수학적 사고방식을 코드로 나타낸 것 같아 가지고 왔다.

num1을 num2번 더한다. i가 0부터 시작하기 때문에 ( 0 ~ num2-1 ) 이렇게 반복되니 i가 num2가 되면 while 문을  나오도록 한다.