s = input().split() #두 숫자 입력 s0 = int(s[0][::-1]) #첫번째 숫자 뒤집어서 정수형 변수로 저장 s1 = int(s[1][::-1]) #두번째 숫자 뒤집어서 정수형 변수로 저장 print(s0 if s0 > s1 else s1) #삼항연산으로 출력
split()
을 해주면 ( )안의 매개체를 기준으로 문자열을 나눠서 리스트로 저장하기 때문에 s는 리스트로 저장이 된다. 문제에서 입력이 2개이므로 s0와 s1 변수로 각 숫자를 int형 변수로 변환하여 저장할 건데, 문자열 인덱싱을 해줄 수 있다. s[0][::-1]
로 표현한 것은 리스트 s에서 0번째 인덱스의 문자열을 거꾸로 표현한다는 뜻이다. 인덱싱 관련해서는 나의 벨로그 파이썬 기초
시리즈에서 확인할 수 있다.
아무튼, 문자열을 거꾸로 출력하는 방법은 여러가지가 있겠지만 이게 제일 편해서 인덱싱을 사용하였다.
마지막 출력해 주는 부분에서는 삼항연산자를 이용하여 출력하였다.
s0를 출력할 건데, s0가 s1보다 클 경우 s0를 출력하라는 뜻이다. 뒤에 else s1
은 s0가 s1보다 크지 않을 경우 s1을 출력하라는 뜻이다.
print(max(s0,s1))
과 같은 의미이다.
#include <string> #include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); string S1,S2; cin >> S1 >> S2; char tmp; tmp = S1[0]; S1[0] = S1[2]; S1[2] = tmp; tmp = S2[0]; S2[0] = S2[2]; S2[2] = tmp; S1 > S2 ? cout << S1 : cout << S2; }
세자리 자연수니까 100의 자리수와 1의 자리수만 바꾸면 된다.