프로그래머스/입문
[프로그래머스 입문 / 파이썬] 두 수의 나눗셈
m으스으m
2024. 7. 22. 18:50
실습 코드 :
https://colab.research.google.com/drive/1Y8cTUBOBiutKTl61eVYHOSFZt846djKQ?usp=sharing
[프로그래머스 입문 / 파이썬] 두 수의 나눗셈.ipynb
Colab notebook
colab.research.google.com
문제 설명
정수 num1
과 num2
가 매개변수로 주어질 때, num1
을 num2
로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수를 완성해주세요.
제한사항
0 < num1 <= 100
0 < num2 <= 100
입력 예시
num1 | num2 | result |
---|---|---|
3 | 2 | 1500 |
7 | 3 | 2333 |
1 | 16 | 62 |
입력 예시 설명
- 입력 예 #1:
num1
이 3,num2
가 2이므로 3 / 2 = 1.5에 1,000을 곱하면 1500이 됩니다. - 입력 예 #2:
num1
이 7,num2
가 3이므로 7 / 3 = 2.3333...에 1,000을 곱하면 2333.3333...이 되며, 정수 부분은 2333입니다. - 입력 예 #3:
num1
이 1,num2
가 16이므로 1 / 16 = 0.0625에 1,000을 곱하면 62.5가 되며, 정수 부분은 62입니다.
문제 풀이 설명
주어진 두 정수를 나눈 값을 1,000으로 곱한 후 그 결과의 정수 부분을 반환하는 문제입니다. 이를 해결하기 위해 다음의 단계를 따릅니다:
num1
을num2
로 나눈다.- 그 결과에 1,000을 곱한다.
- 그 결과의 정수 부분을 반환한다.
코드 구현
def solution(num1, num2):
# num1을 num2로 나눈 후 1,000을 곱하고 정수 부분을 반환
return int((num1 / num2) * 1000)
# 테스트 예시
print(solution(3, 2)) # 결과: 1500
print(solution(7, 3)) # 결과: 2333
print(solution(1, 16)) # 결과: 62
풀이법 2: 함수형 프로그래밍 사용
파이썬의 lambda
와 map
을 사용하여 두 수의 나눗셈을 처리할 수 있습니다.
solution = lambda num1, num2: int((num1 / num2) * 1000)
# 테스트 예시
print(solution(3, 2)) # 결과: 1500
print(solution(7, 3)) # 결과: 2333
print(solution(1, 16)) # 결과: 62
풀이법 3: 클래스 메서드 사용
클래스를 사용하여 두 수의 나눗셈을 처리할 수도 있습니다.
class Division:
@staticmethod
def solution(num1, num2):
return int((num1 / num2) * 1000)
# 테스트 예시
print(Division.solution(3, 2)) # 결과: 1500
print(Division.solution(7, 3)) # 결과: 2333
print(Division.solution(1, 16)) # 결과: 62
계산 복잡도
- 첫 번째 방법:
O(1)
- 두 수의 나눗셈과 곱셈 연산은 상수 시간 복잡도를 가집니다. - 두 번째 방법:
O(1)
- 람다 함수와 map을 사용하는 방법도 상수 시간 복잡도를 가집니다. - 세 번째 방법:
O(1)
- 클래스 메서드를 사용하는 방법도 상수 시간 복잡도를 가집니다.
태그
- #프로그래머스
- #파이썬
- #코딩테스트
- #알고리즘
- #나눗셈
- #기초문제
- #입문문제
- #함수형프로그래밍
- #클래스
- #문제풀이