Just Fighting
[백준] 뒤집힌 덧셈 본문
728x90
https://www.acmicpc.net/problem/1357
1357번: 뒤집힌 덧셈
어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(
www.acmicpc.net
< 문제 설명 >
어떤 수의 역순을 만드는 함수를 Rev(x)라고 할 때,
주어진 두개의 숫자 X, Y를 이용해
Rev(Rev(X)+Rev(Y))를 리턴해라.
< 문제 이해 >
Rev() 함수를 만들어서 풀면 된다고 생각했고,
문자열을 뒤집는 방법을 이용해 풀면 쉽게 풀릴 것이라고 생각했다.
< 문제 풀이 1 - for문 이용 >
숫자를 문자열로 바꾸고
for문을 이용해 문자열을 뒤집는 방법을 이용했다.
def Rev(num):
num = str(num)
new = ''
for i in range(len(num)-1, -1, -1):
new += num[i]
return int(new)
x, y = map(int, input().split())
print(Rev(Rev(x)+Rev(y)))
< 문제 풀이 2 - [::] 사용>
위에 방식대로 문제를 풀고 다른 사람들의 풀이을 보았다.
대부분의 사람들이 배열의 [::]를 이용했다는 것을 알 수 있었다.
이 문제를 풀 때 문자열을 뒤집을 수 있는 방법을 떠올리긴 했으나 이 방법은 떠올리지 못했다.
그래서 여기에 정리한다.
def Rev(num):
return int(str(num)[::-1])
x, y = map(int, input().split())
print(Rev(Rev(x)+Rev(y)))
시간은 for문이 조금 덜 걸린 것을 확인할 수 있었다.
728x90
'Algorithm > 코딩테스트 연습' 카테고리의 다른 글
[백준] 수 정렬하기 2 (0) | 2022.06.13 |
---|---|
[백준] 수 정렬하기 3 (0) | 2022.06.06 |
[백준] 운동 (0) | 2022.05.26 |
[백준] 8진수 2진수 (0) | 2022.05.11 |
[백준] 분산처리 (0) | 2022.05.10 |
Comments