실습 코드 :
https://colab.research.google.com/drive/1DW4apSF-Da49yJzeJ8oRqDEFkfEMBwru?usp=sharing
[프로그래머스 입문 / 파이썬] 숫자 비교하기.ipynb
Colab notebook
colab.research.google.com
문제 설명
정수 num1
과 num2
가 매개변수로 주어집니다. 두 수가 같으면 1, 다르면 -1을 return 하도록 solution 함수를 완성해주세요.
제한사항
0 <= num1 <= 10,000
0 <= num2 <= 10,000
입력 예시
num1 | num2 | result |
---|---|---|
2 | 3 | -1 |
11 | 11 | 1 |
7 | 99 | -1 |
입력 예시 설명
- 입력 예 #1:
num1
이 2이고num2
가 3이므로 다릅니다. 따라서 -1을 return합니다. - 입력 예 #2:
num1
이 11이고num2
가 11이므로 같습니다. 따라서 1을 return합니다. - 입력 예 #3:
num1
이 7이고num2
가 99이므로 다릅니다. 따라서 -1을 return합니다.
문제 풀이 설명
주어진 두 정수가 같은지 비교하여 같으면 1, 다르면 -1을 반환하는 문제입니다. 이를 해결하기 위해 다음의 단계를 따릅니다:
- 두 수가 같은지 비교합니다.
- 같으면 1을 반환하고, 다르면 -1을 반환합니다.
코드 구현
def solution(num1, num2):
# 두 수가 같으면 1, 다르면 -1을 반환
return 1 if num1 == num2 else -1
# 테스트 예시
print(solution(2, 3)) # 결과: -1
print(solution(11, 11)) # 결과: 1
print(solution(7, 99)) # 결과: -1
풀이법 2: 삼항 연산자 대신 함수 사용
파이썬의 내장 함수를 사용하여 두 수를 비교할 수 있습니다.
def solution(num1, num2):
return 1 if num1 == num2 else -1
# 테스트 예시
print(solution(2, 3)) # 결과: -1
print(solution(11, 11)) # 결과: 1
print(solution(7, 99)) # 결과: -1
풀이법 3: 클래스 메서드 사용
클래스를 사용하여 두 수를 비교할 수도 있습니다.
class Comparator:
@staticmethod
def solution(num1, num2):
return 1 if num1 == num2 else -1
# 테스트 예시
print(Comparator.solution(2, 3)) # 결과: -1
print(Comparator.solution(11, 11)) # 결과: 1
print(Comparator.solution(7, 99)) # 결과: -1
계산 복잡도
- 첫 번째 방법:
O(1)
- 두 수의 비교는 상수 시간 복잡도를 가집니다. - 두 번째 방법:
O(1)
- 함수형 프로그래밍을 사용하는 방법도 상수 시간 복잡도를 가집니다. - 세 번째 방법:
O(1)
- 클래스 메서드를 사용하는 방법도 상수 시간 복잡도를 가집니다.
태그
- #프로그래머스
- #파이썬
- #코딩테스트
- #알고리즘
- #비교
- #기초문제
- #입문문제
- #함수형프로그래밍
- #클래스
- #문제풀이
'프로그래머스 > 입문' 카테고리의 다른 글
[프로그래머스 입문 / 파이썬] 배열 두 배 만들기 (2) | 2024.07.22 |
---|---|
[프로그래머스 입문 / 파이썬] 분수 덧셈 (1) | 2024.07.22 |
[프로그래머스 입문 / 파이썬] 숫자 비교하기 (0) | 2024.07.22 |
[프로그래머스 입문 / 파이썬] 두 수의 나눗셈 (0) | 2024.07.22 |
[프로그래머스 입문 / 파이썬] 몫 구하기 (1) | 2024.07.22 |