14561번: 회문백준/문제2024. 7. 17. 17:15
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/14561
언어 : Kotlin
문제 설명 :
n진수는 base가 n인 수를 말한다. 예를 들어 십진수는 base가 10인 수이다. n진수의 수 AmAm-1Am-2…A1A0를 n진수로 표현해보면 AmAm-1Am-2…A1A0 = Am × nm + Am-1 × nm–1 + Am-2 × nm–2 + … + A1 × n1 + A0 × n0이다. 예를 들면, 12468은 12468 = 1 × 104 + 2 × 103 + 4 × 102 + 6 × 101 + 8 × 100로 표현할 수 있다.
회문(Palindrome)이란 앞으로 읽으나 뒤로 읽으나 같은 글을 말한다. 예를 들면, madam, level, 12321은 회문이다. 반면에, Chung-ang이나 university, 54899는 회문이 아니다.
어떤 십진수의 수 A가 주어졌을 때, 이를 n진수로 표현하면 회문인지 아닌지 판별하는 프로그램을 만드시오.
입력 :
첫째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 1000)이 주어진다.
둘째 줄부터 T줄에 걸쳐 테스트 케이스별로 어떤 십진수의 수 A(1 ≤ A ≤ 100,000,000,000)와 n(2 ≤ n ≤ 16)이 공백을 두고 주어진다.
출력 :
각 줄마다 테스트 케이스가 회문일 경우 1, 아닐 경우에는 0을 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 256MB
입출력 예 :
입력 | 출력 |
5 100 3 30 2 25 4 58 8 342633 16 |
1 0 1 0 0 |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
repeat(readLine().toInt()) {
val (a, n) = readLine().split(" ")
val cur = a.toBigInteger().toString(n.toInt())
bw.appendLine(if (cur == cur.reversed()) "1" else "0")
}
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
10453번: 문자열 변환 (0) | 2024.07.18 |
---|---|
5534번: 간판 (0) | 2024.07.18 |
7569번: 토마토 (0) | 2024.07.17 |
9249번: 최장 공통 부분 문자열 (0) | 2024.07.16 |
7662번: 이중 우선순위 큐 (0) | 2024.07.16 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!