https://www.acmicpc.net/problem/11328
난이도 : 브론즈 2
태그 : 구현, 문자
설명
두 개의 문자열을 입력받고,
한 문자열을 적절히 재배치하여 다른 문자열을 만들 수 있는지 판단하는 문제입니다.
즉 애너그램인지 판단하는 것이죠.
https://namu.wiki/w/%EC%95%A0%EB%84%88%EA%B7%B8%EB%9E%A8
애너그램인지 판단하는 것은 간단합니다.
두 문자를 정렬하여 서로 같은지 판단하는 문제입니다.
Listen과 Silent는 애너그램일까요?
Listen의 각 글자인 L, i, s, t, e, n을 오름차순으로 정렬해봅시다. eilnst 네요.
Silent의 각 글자인 S, i, l(L), e, n, t를 오름차순으로 정렬해봅시다. eilnst로 같습니다.
즉 두 단어는 애너그램입니다.
소스코드
fun main() {
repeat(readln().toInt()) {
val (str1, str2) = readln().split(" ")
if (str1.toCharArray().sorted().joinToString("") == str2.toCharArray().sorted().joinToString("")) {
println("Possible")
} else {
println("Impossible")
}
}
}
String.toCharArray()를 사용해 문자열을 쉽게 Char 배열 형태로 만들 수 있습니다.
이후 sorted로 정렬된 배열을 만들고,
joinToString으로 Char 배열을 문자열로 합친 뒤, 두 문자열을 비교합니다.
(코틀린에서는 ==으로 문자열을 비교할 수 있습니다)
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 15904번] [Kotlin] UCPC는 무엇의 약자일까? (0) | 2023.07.15 |
---|---|
[백준 4949번] [Kotlin] 균형잡힌 세상 (0) | 2023.07.10 |
[백준 1406번] [Kotlin] 에디터 (0) | 2023.07.03 |
[백준 10819번] [Kotlin] 차이를 최대로 (0) | 2023.07.03 |
[백준 6588번] [Kotlin] 골드바흐의 추측 (0) | 2023.06.29 |