새소식

⌨️ Algorithms/백준

[Python] 백준 3062번_수 뒤집기

2023. 4. 5. 19:46

  • -

https://www.acmicpc.net/problem/3062

 

3062번: 수 뒤집기

수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트 하는 프로그램을 작성하시오.

www.acmicpc.net

 

  • 수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 됨
  • 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트 하기
  • 입력
    • 첫 줄에는 테스트 케이스의 개수 T가 주어짐
    • 각 테스트 케이스는 한 줄에 하나의 정수 N(10 ≤ N ≤ 100000)이 주어짐
  • 출력
    • 각 테스트 케이스에 대해서 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되면 YES를 아니면 NO를 한 줄에 하나씩 출력
  • 시간 제한: 1초
  • 메모리 제한: 128 MB

 

"""
입출력 예시)

4
13
58
120
5056
    -> YES
       NO
       YES
       NO
"""

 

 

## 의사코드 ##

# 원래 수와 뒤집은 수를 합한 수
# new_n = str(int(n) + int(n[::-1]))

# 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 
# mid = (len(new_n) // 2) 
# if new_n[:mid] == new_n[mid:]:
#     print('YES')

 

 

 

 

t = int(input())
for _ in range(t):
    n = str(input())
    new_n = str(int(n) + int(n[::-1]))
    mid = (len(new_n) // 2) 
    if new_n[:mid] == new_n[mid:]:
        print('YES')
    else:
        print('NO')

 

 

-> 합한 수가 좌우 대칭인지 확인하기 위해 합한 수의 길이의 중간 값으로 인덱싱하는 방법을 사용했는데 인덱싱이 잘못 되어서 틀림

 

 

 

 

t = int(input())
for _ in range(t):
    n = str(input())
    new_n = str(int(n) + int(n[::-1]))
    if new_n == new_n[::-1]:
        print('YES')
    else:
        print('NO')

 

 

-> 합한 수가 좌우 대칭인지 확인하기 위해 그냥 합한 수와 합한 수를 뒤집은 수가 같은지 확인

 

 

 

 

 

 

https://somjang.tistory.com/entry/BaekJoon-3062%EB%B2%88-%EC%88%98-%EB%92%A4%EC%A7%91%EA%B8%B0-Python

 

[BaekJoon] 3062번 : 수 뒤집기 (Python)

코딩 1일 1문제! 오늘의 문제는 백준의 수 뒤집기 입니다. 3062번: 수 뒤집기 수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되

somjang.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!