9946번: 단어 퍼즐백준/문제2024. 4. 8. 14:30
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/9946
언어 : Kotlin
문제 설명 :
준하는 유치원에서 단어 퍼즐게임을 즐겨한다.
단어 퍼즐게임이란, 주어진 알파벳들을 섞어서 단어를 만드는 게임이다.
천재 준하는 알파벳을 임의로 조합하여, 사전과 매칭된 단어를 만드는 프로그램을 만들어 단어를 완성시켰다.
그러나 완성된 단어를 원장님에게 가져가려는 순간, 지나가던 강민이와 부딫혀서 단어조각을 땅에 떨어뜨리고 말았다.
준하는 어찌어찌 조각을 회수했지만, 순서는 뒤죽박죽이 되었고, 알파벳이 부족하거나 다른 알파벳이 섞였을 수도 있다.
준하가 처음에 완성한 단어와 나중에 회수한 알파벳들이 주어질 때,
준하가 알파벳을 제대로 회수했는지 안했는지 판단하는 프로그램을 만들어주자.
입력 :
입력은 케이스마다 두줄로 이루어져있다.
첫째 줄은 준하가 처음 완성한 단어이고, 둘째 줄은 떨어뜨린 다음 회수한 알파벳들이다.
각 줄은 알파벳 소문자로 이루어져 있고, 길이는 1000을 넘지 않는다.
마지막에 END라는 단어가 두줄 주어지는데, 이는 케이스의 끝을 의미한다.
출력 :
케이스마다 번호를 붙여서 예제출력과 같은 형식으로 출력한다.
준하가 알파벳을 제대로 회수했다면 same 을, 잘못 회수했다면 different 를 출력한다.
제한 사항 :
- 시간 제한 : 3초
- 메모리 제한 : 256MB
입출력 예 :
입력 | 출력 |
testing intestg abc aabbbcccc abcabcbcc aabbbcccc abc xyz END END |
Case 1: same Case 2: different Case 3: same Case 4: different |
풀이 :
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))
var idx = 1
while (true) {
val input = Array(2) { readLine() }
if (input.distinct().joinToString() == "END") break
val a = input[0].groupingBy { it }.eachCount()
val b = input[1].groupingBy { it }.eachCount()
val result = if (a == b) "same" else "different"
bw.appendLine("Case $idx: $result")
bw.flush()
idx++
}
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
9202번: Boggle (0) | 2024.04.09 |
---|---|
7600번: 문자가 몇갤까 (0) | 2024.04.09 |
6443번: 애너그램 (0) | 2024.04.08 |
1283번: 단축키 지정 (0) | 2024.04.08 |
3765번: Celebrity jeopardy (0) | 2024.04.05 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!