문제
작성한 코드
import sys
input = sys.stdin.readline
a, b = input().split()
arr_a = list(map(str, a))
arr_b = list(map(str, b))
str_a = ""
str_b = ""
for i in range(2, -1, -1):
str_a += arr_a[i]
str_b += arr_b[i]
if int(str_a) > int(str_b):
print(int(str_a))
else:
print(int(str_b))
- sys.stdin.readline을 input에 할당하여 사용한다.
- input()으로 문자를 입력받아, split()으로 구분하여 a와 b에 값을 할당한다.
- a를 문자열 형태로 map()을 통해 list인 arr_a에 각각 할당하고, arr_b도 마찬가지로 할당한다.
- str_a, str_b에 ""를 할당하여 문자열임을 선언한다.
- for i in range(2, -1, -1): 2부터 0까지 역순으로 반복문 for문을 돌리고, arr_a와 arr_b의 인덱스 2부터 역순으로 진행하여 str_a, str_b에 문자열을 더해준다.
- int형으로 형변환한 str_a와 str_b의 값을 비교하여, int(str_a)가 크다면 int(str_a)의 값을 출력하고, int(str_b)가 크다면 int(str_b)의 값을 출력한다.
cf.) 더 좋은 코드
import sys
input = sys.stdin.readline
a, b = input().split()
num_a = int(a[ : : -1])
num_b = int(b[ : : -1])
if num_a > num_b:
print(num_a)
else:
print(num_b)
- 리스트 슬라이싱 [시작 index : 종료 index : step]을 이용한다.
- a와 b를 리스트로 만들어, step을 -1로 주어 전체를 역순으로 뒤집는다. 이후에 int형으로 형변환하여 num_a, num_b에 각각 저장한다.
'💻 코딩테스트 > 백준' 카테고리의 다른 글
백준 [2941] - 크로아티아 알파벳 (0) | 2022.08.23 |
---|---|
백준 [5622] - 다이얼 (0) | 2022.08.23 |
백준 [1152] - 단어의 개수 (0) | 2022.08.20 |
백준 [1157] - 단어 공부 (0) | 2022.08.20 |
백준 [2675] - 문자열 단계 (0) | 2022.08.20 |