실습 코드 :

https://colab.research.google.com/drive/1DW4apSF-Da49yJzeJ8oRqDEFkfEMBwru?usp=sharing

 

[프로그래머스 입문 / 파이썬] 숫자 비교하기.ipynb

Colab notebook

colab.research.google.com

 

문제 설명

정수 num1num2가 매개변수로 주어집니다. 두 수가 같으면 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. 두 수가 같은지 비교합니다.
  2. 같으면 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

계산 복잡도

  1. 첫 번째 방법: O(1) - 두 수의 비교는 상수 시간 복잡도를 가집니다.
  2. 두 번째 방법: O(1) - 함수형 프로그래밍을 사용하는 방법도 상수 시간 복잡도를 가집니다.
  3. 세 번째 방법: O(1) - 클래스 메서드를 사용하는 방법도 상수 시간 복잡도를 가집니다.

태그

  • #프로그래머스
  • #파이썬
  • #코딩테스트
  • #알고리즘
  • #비교
  • #기초문제
  • #입문문제
  • #함수형프로그래밍
  • #클래스
  • #문제풀이

 

+ Recent posts