[프로그래머스] lv0. 두 수의 연산(합, 차, 곱, 나눗셈, 몫, 나머지 구하기), (-)분수의 덧셈

주연·2023년 1월 26일
1

Python 문제 풀이

목록 보기
9/20
post-thumbnail

두 수의 합

230126

문제

정수 num1과 num2가 주어질 때, num1과 num2의 합을 return하도록 soltuion 함수를 완성해주세요.

풀이

def solution(num1, num2):
    return num1+num2
  • 다른 사람 풀이
#1
solution=lambda *x:sum(x)


#2
solution=lambda x,y:x+y

lambda를 쓰네..

#1에서 lambda *args를 쓰는 이유:
변수의 수를 정하지 않고 사용하기 위함.

(참고: https://kongdols-room.tistory.com/44)

두 수의 차

230126

문제

정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 return하도록 soltuion 함수를 완성해주세요.

풀이

def solution(num1, num2):
    return num1 - num2

두 수의 곱

230126

문제

정수 num1, num2가 매개변수 주어집니다. num1과 num2를 곱한 값을 return 하도록 solution 함수를 완성해주세요.

풀이

solution = lambda num1, num2 : num1 * num2

두 수의 나눗셈

230126

문제

정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.

풀이

solution = lambda num1, num2 : int(num1 / num2 * 1000)
  • 다른 사람 풀이
solution = lambda x, y: 1000 * x // y

1000을 먼저 곱했다. 그럼 불필요하게 int()를 사용할 필요가 없다.

몫 구하기

230126

문제

정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.

풀이

def solution(num1, num2):
    return num1 // num2
  • 다른 사람 풀이
solution = int.__floordiv__

우와...처음보는 메서드다


a - b       a.__sub__(b)
a * b       a.__mul__(b)
a / b       a.__truediv__(b)
a // b      a.__floordiv__(b)
a % b       a.__mod__(b)
a << b      a.__lshift__(b)
a >> b      a.__rshift__(b)
a & b       a.__and__(b)
a | b       a.__or__(b)
a ^ b       a.__xor__(b)
a ** b      a.__pow__(b)
-a          a.__neg__()
~a          a.__invert__()
abs(a)      a.__abs__()

이렇게 나와있는데 int.__floordiv__ 이건 뭐지
이렇게도 가능한건가

solution = num1.__floordiv__(num2)

이렇게 하니 오히려 오류가 난다. 구글링해도 안 나온다...
만약 이 부분에 대해 아는 사람이 있다면 알려주세요..

def solution(num1, num2):
    return num1.__floordiv__(num2)

그런데 이렇게 하면 또 된다.
이걸

solution = int.__floordiv__

이렇게도 쓸 수 있나 보다

(참고: https://wikidocs.net/84418)

나머지 구하기

230126

문제

정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.

풀이

solution = int.__mod__

몫 구하기에서 알게된 특수 메서드를 사용해보았다.

분수의 덧셈

230129

문제

문제 설명
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항
0 <numer1, denom1, numer2, denom2 < 1,000

입출력 예

numer1denom1numer2denom2result
1234[5, 4]
9213[29, 6]

풀이

profile
공부 기록

0개의 댓글