본문 바로가기
Algorithm Problem Solving/BaekJoon

[BaekJoon] 백준 1357 뒤집힌 덧셈 (Python / 파이썬)

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 8. 17.
728x90
반응형

BaekJoon 백준 1357 뒤집힌 덧셈 문제는 Rev(X)를 X의 모든 자릿수를 역순으로 만드는 함수라고 할 때, X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 문제이다. 리스트, 문자열의 인덱스 슬라이싱에 관한 문제로 난이도는 브론즈 Bronze 1이다.

 

BaekJoon 1357 뒤집힌 덧셈 문제 정보

출처

- https://www.acmicpc.net/problem/1357

알고리즘 분류

- 구현, 문자열

난이도

- 브론즈 1 / Bronze 1

 

뒤집힌 덧셈 문제 요약

  • 어떤 수 X가 주어졌을 때, X의 모든 자릿수가 역순이 된 수를 얻을 수 있다.
  • Rev(X)를 X의 모든 자릿수를 역순으로 만드는 함수라고 하자.
  • 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(X) = 1이다.
  • 두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하여 출력한다.
  • X와 Y는 1,000보다 작거나 같은 자연수이다.

 

문제 풀이 과정

  1. X, Y를 문자열로 받아와 저장하고 문자열(리스트) 슬라이싱을 사용하여 뒤에서부터 다시 저장한다.
    [::-1] → 처음부터 끝까지 역순으로 1칸 간격으로 ( - → 역순으로)
  2. 문자열의 한 문자씩 방문하여 0이 아닌 처음 위치를 찾아서 그 위치부터 끝까지 저장하고 리턴한다.
  3. Rev(Rev(X) + Rev(Y))를 구하여 출력한다.

 

코드 및 설명
def Rev(num):
    num = num[::-1]
    for i in range(len(num)):
        if num[i] != '0':
            num = num[i::1]
            break
    return num

X, Y = map(str, input().split())
print(Rev(str(int(Rev(X)) + int(Rev(Y)))))

BaekJoon 백준 1357 뒤집힌 덧셈 문제를 파이썬 python의 리스트, 문자열 인덱스 슬라이싱을 활용하여 풀어보았다. 난이도는 Bronze 브론즈 1이다. 

728x90
반응형

댓글