숫자 비교하기

2024. 7. 1. 18:00코딩테스트 입문

https://school.programmers.co.kr/learn/courses/30/lessons/120807

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 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합니다.

단순한 비교 문제입니다. 조건문을 사용하면 빠르게 풀 수 있습니다.

파이썬으로 문제를 풀어보도록 하겠습니다.

def solution(num1, num2):
    answer = 1 if num1 == num2 else -1
    return answer

num1과 num2가 동일하다면 1, 아니라면 -1을 반환하는 코드입니다.

조건문을 사용한 가장 기초적인 풀이법입니다.

 

다른 방법을 한 번 소개해보겠습니다.

결국 이 문제는 num1과 num2를 비교하는 문제인데, 보통 True - False 문제는 1 - 0으로 정수화를 많이 사용합니다.

그러면 조금 생각해볼 수 있죠, num1과 num2가 동일하면 1, 아니라면 0이 반환되는데, 이 정수들을 가지고 1과 -1을 어떻게 만들 수 있을까?

1 = 1 * 2 - 1, 0 = 0 * 2 - 1 이렇게도 표현할 수 있습니다.

이 표현식을 기반으로 코드를 작성해보겠습니다.

def solution(num1, num2):
    return int(num1 == num2) * 2 - 1

int 말고도 sum을 사용해도 동일한 결과입니다.

전 이런 코드가 되게 마음에 들어서 한 번 이런 식으로 풀어보았습니다.

'코딩테스트 입문' 카테고리의 다른 글

배열 두 배 만들기  (0) 2024.07.03
분수의 덧셈  (0) 2024.07.02
두 수의 나눗셈  (0) 2024.06.30
몫 구하기  (0) 2024.06.29
두 수의 곱  (0) 2024.06.28