두 수의 합/차/곱/몫 구하기
: 간단히 + - * // 연산자를 써서 풀면 된다고 생각했는데 첫번째 문제부터 다른 사람들의 풀이를 보고 놀랐다.
새로운 세계가 있는거같달까.. 같은 문제라도 어떻게 접근하느냐에 따라 푸는 방법이 정말 다양하다.
1. 두 수의 합 / 차 : 정수 num1, num2의 합을 return 하는 solution 함수
[내 풀이]
def solution(num1, num2):
answer = int(num1) + int(num2)
return answer
... 마일드 하다~ 나름 int 로 받기 ㅎ
[다른 사람의 풀이]
(1)
solution = lambda *x: sum(x)
오늘 포스팅했는데 lambda 떠올리지도 못한.. 정말 간결하다.
*x는 함수로 들어오는 인수를 튜플로 패킹한다
유사한 풀이
solution = lambda x, y: x+y
(2)
def solution(num1, num2):
return sum([num1, num2)
sum 을 사용하는 방법도 있다!
(3)
def solution(num1: int, num2: int) -> int:
answer = num1 + num2
return answer
신기해서 지피티한테 달려감
type hint 를 사용하여 함수의 인자와 반환값의 타입을 명시하는 방법
2. 두 수의 곱
[내 풀이]
def solution(num1:int, num2:int ) -> int:
answer = num1 * num2
return answer
... 배워서 나도 한번 써봄 으흐흐
[다른 풀이 방법]
(1)
def solution(num1, num2):
i = 0
answer = 0
while i < num2:
answer += num1
i += 1
return answer
곱셈이라는게 결국은 num1을 num2 번 더한다는 거니까 (ex. 3 * 4 = 3 + 3+ 3+ 3)
이런 식으로도 쓸수 있구나
(2)
def solution(*num1):
return num1[0] * num1[1]
인수를 받아 num1이라는 튜플로 반환하고
0번 인덱스와 1번 인덱스의 곱으로 표현
3. 몫 구하기
[내 풀이]
def solution(num1, num2):
answer = 0
while num1 >= num2:
num1 -= num2
answer += 1
return answer
또는 num1 // num2
나도 한번 반복문을 이용해서 풀어보기 ㅎ
근데 생각보다 잘못 생각해서 오래 걸렸다;
[다른 풀이 방법]
(1)
solution = int.__floordiv__
int class의 메소드를 이용한 풀이..
(2)
def solution(num1, num2):
answer = num1 / num2
return int(answer)
소수점이 나올수 있으니까 int 로 날려버리기
(3)
def solution(num1, num2):
return divmod(num1, num2)[0]
또는
a, b = divmod(num1, num2)
return a
divmod => [0] : 몫 [1] : 나머지
(4)
import math
def solution(num1, num2):
return math.floor(num1/num2)
코테 제목만 보고 아 뭐 쉽겠네 ^_ ^ 하며 들어갔지만 세상은 넓고 똑똑한 사람은 많다!
'개발 공부 일지 > Python' 카테고리의 다른 글
파이썬 : 반복문(for, while) 사용해서 요소 순회하기 (0) | 2024.06.22 |
---|---|
프로그래머스 코딩테스트 입문 day2 : 사칙연산, 조건문, 배열 (0) | 2024.06.21 |
배열과 문자열 처리하기 (0) | 2024.06.20 |
파이썬 내장함수 실습하기 (0) | 2024.06.20 |
자료구조와 알고리즘 with 파이썬 (독학 8일차) (0) | 2024.06.10 |