3181번: 줄임말 만들기백준/문제2024. 5. 2. 00:57
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/3181
언어 : Kotlin
문제 설명 :
꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다.
하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은 정확히 한칸의 공백으로 구분이 된다. 줄임말을 만들때는 각 단어의 앞글자를 따서 만들어지는데 다음의 단어들은 쓸모없는 단어들이므로 무시한다.
'i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili'.
하지만 이 단어들이 하려는 말의 맨 앞에 올경우 매우 중요하다고 판단되어 무시하면 안되고 줄임말에 포함하여야 한다.
줄임말을 만들기도 귀찮아진 꿍을 위해 줄임말을 만들어주는 프로그램을 작성하라.
단, 줄임말은 모두 대문자로만 이루어져있다.
입력 :
만들어진 줄임말을 출력하라.
출력 :
경로가 무조건 만나는 소가 몇 쌍인지 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
micro soft | MS |
biti ali i ne biti | BNB |
ali ja sam i jucer jeo | AJSJJ |
풀이 :
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))
val exceptList = arrayListOf("i", "pa", "te", "ni", "niti", "a", "ali", "nego", "no", "ili")
val result = readLine().split(" ").let {
if (exceptList.contains(it[0])) {
"${it[0][0].uppercase()}${it.filterNot { exceptList.contains(it) }.joinToString("") { it[0].uppercase() }}"
} else {
it.filterNot { exceptList.contains(it) }.joinToString("") { it[0].uppercase() }
}
}
bw.write(result)
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
15881번: Pen Pineapple Apple Pen (0) | 2024.05.03 |
---|---|
31403번: A + B - C (0) | 2024.05.03 |
21734번: SMUPC의 등장 (0) | 2024.05.02 |
30999번: 민주주의 (0) | 2024.05.02 |
11365번: !밀비 급일 (0) | 2024.05.02 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!