문제

 

2908번: 상수

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

www.acmicpc.net

세자리 수 두 개를 입력하면 그 수를 거꾸로 뒤집은 다음 큰 수를 출력하는 문제. 에헤이 개초보인 나도 풀었는데 님들도 할 수 있음. 판다스에 바이오파이썬까지 굴리면서 무슨 개초보야 텐서플로우 못쓰는데요 아니 그건 걔가 특수한거지

 

풀이

일단 본격적인 풀이에 들어가기 앞서, 한가지 보고 갈 코드가 있다.

a=input("입력해주세요 \n")
a=a.lower() # 영어일 경우 전부 소문자로
a=a.replace(" ","") # 공백이 있을 경우 공백을 붙여버림

if a == a[::-1]:
    print(True)
else:
    print(False)
# 그래서 짜잔 나왔다

이 코드는 어떤 문장이 회문인지를 판별하는 코드이다. 회문이란, 거꾸로 써도 똑같은 문장… 그러니까 기러기, 스위스, 토마토같은 것이다. 여보 안경 안보여도 회문. 사실 이 문제가 쉬웠던 것도 이걸 미리 해 본 덕분. 아무튼, 그래서 여기서 뭘 갖다 쓸거냐…

a[::-1]

이거다. 이게 뭔지는 풀이 들어가면서 알려드림.

import sys
a,b=sys.stdin.readline().strip().split(" ")
print(a,b)

입력은 역시 역사와 전통의 5G-LTE급 sys.stdin.readline()이다. strip()은 sys.stdin.readline()이 특성상 뒤에 공백이 붙는데 그거 떼려고 넣은거고, split()이 본론. 아무튼 이렇게 하면 입력은 되는데요… 그럼 어떻게 뒤집죠?

a[::-1]

이거요. 참고로 회문 판독 코드에서 if문 조건에 들어가 있다는 걸 알면 금방 유추할 수 있다.

import sys
a,b=sys.stdin.readline().strip().split(" ")
a_num=int(a[::-1])
b_num=int(b[::-1])
if a_num > b_num:
    print(a_num)
else: 
    print(b_num)

출력은 그냥 얘랑 쟤랑 애가 크면 얘 아니면 쟤 뽑으면 된다.

'BOJ > [BOJ] Python' 카테고리의 다른 글

백준 2941번 풀이  (0) 2022.08.18
백준 5622번 풀이  (0) 2022.08.18
백준 1152번 풀이  (0) 2022.08.18
백준 10809번 풀이  (0) 2022.08.18
백준 11720번 풀이  (0) 2022.08.18

Profile

Lv. 34 라이츄

요즘 날씨 솔직히 에바참치김치꽁치갈치넙치삼치날치기름치준치학꽁치임..