![5218번: 알파벳 거리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBmzXW%2FbtsC78et7q8%2F6lhLAV9sgVxgVTjPWHgRl1%2Fimg.png)
![스몰스테핑](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
5218번: 알파벳 거리백준/문제2024. 1. 5. 13:09
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/5218
5218번: 알파벳 거리
첫째 줄에 테스트 케이스의 수 (< 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 두 단어가 공백으로 구분되어져 있다. 단어의 길이는 4보다 크거나 같고, 20보다 작거나 같으며, 알
www.acmicpc.net
언어 : Kotlin
문제 설명 :
길이가 같은 두 단어가 주어졌을 때, 각 단어에 포함된 모든 글자의 알파벳 거리를 구하는 프로그램을 작성하시오.
두 글자 x와 y 사이의 알파벳 거리를 구하려면, 먼저 각 알파벳에 숫자를 할당해야 한다. 'A'=1, 'B' = 2, ..., 'Z' = 26. 그 다음 y ≥ x인 경우에는 y-x, y < x인 경우에는 (y+26) - x가 알파벳 거리가 된다.
예를 들어, 'B'와 'D' 사이의 거리는 4 - 2 = 2이고, 'D'와 'B' 사이의 거리는 (2+26) - 4 = 24이다.
입력 :
첫째 줄에 테스트 케이스의 수 (< 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 두 단어가 공백으로 구분되어져 있다. 단어의 길이는 4보다 크거나 같고, 20보다 작거나 같으며, 알파벳 대문자로만 이루어져 있다.
출력 :
각 테스트 케이스 마다 각 글자의 알파벳 거리를 공백으로 구분해 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
5 AAAA ABCD ABCD AAAA DARK LOKI STRONG THANOS DEADLY ULTIMO |
Distances: 0 1 2 3 Distances: 0 25 24 23 Distances: 8 14 19 24 Distances: 1 14 9 25 1 12 Distances: 17 7 19 5 1 16 |
풀이 :
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val t = readLine().toInt()
repeat(t) {
val (w1, w2) = readLine().split(" ")
val arr = IntArray(w1.length) { 0 }
for (i in w1.indices) {
if (w2[i] >= w1[i]) arr[i] = w2[i] - w1[i] else arr[i] = w2[i] - w1[i] + 26
}
bw.write("Distances: ")
arr.forEachIndexed { index, i -> bw.write("${arr[index]} ") }
bw.appendLine()
}
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
1254번: 팰린드롬 만들기 (1) | 2024.01.08 |
---|---|
10822번: 더하기 (0) | 2024.01.05 |
1371번: 가장 많은 글자 (0) | 2024.01.05 |
9996번: 한국이 그리울 땐 서버에 접속하지 (1) | 2024.01.04 |
1251번: 단어 나누기 (2) | 2024.01.03 |
![스몰스테핑](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!