Study/코딩

[백준 2908번 파이썬] 상수

Do잇 2023. 3. 8. 22:36

https://www.acmicpc.net/problem/2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

 

 

백준 상수 문제

 

 

📝 풀이1.

a,b = input().split()
c= int(a[2]+a[1]+a[0])
d= int(b[2]+b[1]+b[0])
if c>d :
    print(c)
else:
    print(d)

 

 

📝 풀이 2.

 

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

if a > b:
    print(a)
else :
    print(b)

 

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

 

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

 

 

📝 풀이 3. 삼항 연산자 표현식 코드

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

print(a) if a > b else print(b)

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