티스토리 뷰

반응형

 

[Python] 백준 알고리즘 온라인 저지 2908번 : 상수

 

Python3 코드

 

1) if - else 코드

num1, num2 = input().split()
num1 = int(num1[::-1])  # [::-1] : 역순
num2 = int(num2[::-1])

if num1 > num2:
    print(num1)
else :
    print(num2)

 

2) 삼항 연산자 표현식 코드

num1, num2 = input().split()
num1 = int(num1[::-1])  # [::-1] : 역순
num2 = int(num2[::-1])

print(num1) if num1 > num2 else print(num2)

 

 

Python3 코드 풀이

 

1. 전체적으로 문제를 푼 방법 요약

이번 문제는 입력받는 두 개의 숫자를 역순으로 바꾸어서 바뀐 숫자 중 큰 숫자를 출력하는 문제이다. 문자열을 역순으로 재배치할 줄 안다면 쉽게 풀 수 있다. 

 

문자를 역순으로 재배치하는 방법은 여러 가지가 있는데 이번 문제는 문자가 두 개밖에 없어서 문자 두 개를 각각 인덱스의 범위 연산자를 이용해서 바꾸었다. [::-1] 연산자를 이용하면 문자를 역순으로 재배치할 수 있다.

 

2. 코드 상단에서 두 수를 역순으로 재배치한다.

num1, num2 = input().split()
num1 = int(num1[::-1])  # [::-1] : 역순
num2 = int(num2[::-1])

input으로 숫자를 문자열로 입력받으면 공백을 기준으로 두 개의 문자로 나누어서 각각을 변수에 선언한다. 변수에 저장한 문자는 바로 숫자로 변환하지 않고 역순으로 재배치해야 하기 때문에 역순으로 재배치 후 숫자로 변환하였다. 역순으로 변환할 때는 범위 선택 연산자를 [::-1]로 지정해서 문자 배열을 뒤집어서 반환되도록 했다.

 

숫자 타입은문자열처럼 분리해서 사용할 수 없어서 먼저 변환을 하고서 숫자로 변환했다. 숫자를 [::-1] 연산자로 지정할 때에는 TypeError가 발생한다. 'int' object is not subscriptable 사유로 int 타입은 사용 할 수 없다고 한다. 

 

3. 변환한 숫자의 크기를 비교한다.

if num1 > num2:
    print(num1)
else :
    print(num2)

if - else 조건식을 이용해서 두 수 중 큰 숫자를 출력하는 코드를 작성하였다.

 

4. if- else 조건식은 한줄로 표현 가능한 삼항 연산자 표현식으로도 작성하면 아래와 같다.

print(num1) if num1 > num2 else print(num2)

삼항 연산자를 사용할 때는 [ 참일 때 값 if 조건식 else 거짓일 때 값 ] 형태로 사용한다. if 조건식이 길어진다면 한 줄로 작성할 때 가독성을 해쳐서 사용하지 않지만 조건식이 간단한 경우는 한 줄로 표현하면 코드가 간단해져서 사용하기에 편리하다. 

 

반응형
댓글
반응형