문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
출력
첫째 줄에 상수의 대답을 출력한다.
예제
나의 풀이
a, b = map(list, input().split())
a.reverse()
b.reverse()
if int("".join(a)) > int("".join(b)):
print("".join(a))
else:
print("".join(b))
- 상수 `a`와 `b`를 리스트 형태로 변환한다.
- `list.reverse()`로 숫자를 역순으로 한다.
- `join()` 함수로 리스트를 하나의 문자열로 합치고 크기를 비교한다.
다른 사람의 풀이
a, b = input().split()
a = int(a[::-1])
b = int(b[::-1])
if a > b:
print(a)
else:
print(b)
- `a`, `b`는 문자열 형태로 출력한다.
- `문자열[시작:끝:규칙]`을 사용해서 문자열을 역순으로 바꾼다.
- 규칙 부분에 `-1`을 넣으면 뒤에서부터 자르는 방식으로 문자열을 뒤집을 수 있다.
- if-else문으로 정수의 크기를 비교한다.
문자열 슬라이싱으로 문자열 뒤집기
str = "가나다라마바사"
a = str[::1] # 가나다라마바사
b = str[::2] # 가다마사
c = str[::-1] # 사바마라다나가
d = str[::-2] # 사마다가
print(a, b, c, d)
- `문자열[시작:끝]` 문자열을 앞에서부터 슬라이싱해서 새로운 문자열을 출력한다.
- `문자열[시작:끝:규칙]` 세 번째에 슬라이싱 규칙을 추가한다. (디폴트값은 `1`)
- 규칙에 `-1`을 넣으면 뒤에서부터 슬라이싱해서 문자열을 뒤집을 수 있다.
참고
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 2675번 문자열 반복 | 파이썬 Python (0) | 2024.11.06 |
---|---|
[백준] 10809번 알파벳 찾기 | 파이썬 Python (1) | 2024.11.05 |
백준 알고리즘 파이썬 VS Code 문제 풀이 세팅하기 (0) | 2024.11.05 |
[백준] 11720번 숫자의 합 | 파이썬 Python (0) | 2024.11.04 |
댓글