5637번: 가장 긴 단어백준/문제2024. 5. 30. 01:07
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/5637
언어 : Kotlin
문제 설명 :
단어는 알파벳(a-z, A-Z)과 하이픈(-)으로만 이루어져 있다. 단어와 다른 문자(마침표, 숫자, 심볼, 등등등...)로 이루어진 글이 주어졌을 때, 가장 긴 단어를 구하는 프로그램을 작성하시오.
Apple의 길이는 5, son-in-law는 10, ACM-ICPC는 8이다.
입력 :
입력은 여러 줄, 문단으로 이루어져 있다. 하지만, 10,000글자를 넘지 않는다. 단어의 길이는 100을 넘지 않는다. E-N-D는 입력의 마지막을 의미한다.
출력 :
가장 긴 단어를 소문자로 출력한다. 가장 긴 단어가 여러개인 경우에는 글에서 가장 먼저 나오는 것을 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
ACM International Collegiate Programming Contest (abbreviated as ACM-ICPC or just ICPC) is an annual multi-tiered computer programming competition among the universities of the world. The contest is sponsored by IBM. Headquartered at Baylor University, with autonomous regions on six continents, the ICPC is directed by Baylor Professor William B. Poucher, Executive Director, and operates under the auspices of the Association for Computing Machinery (ACM). The 2012 ACM-ICPC Asia Hatyai Regional Programming Contest is held during 15-16 November 2012. It is hosted by Prince of Songkla University, Hatyai campus. E-N-D |
international |
풀이 :
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 word = ""
var input: String
while (true) {
input = readLine()
val max = input.split(" ").filterNot { it == "E-N-D" }
.map { it.replace("[^a-zA-Z-]".toRegex(), "") }.maxBy { it.length }
if (word.length < max.length) word = max
if (input.contains("E-N-D")) break
}
bw.write(word.lowercase())
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
11094번: 꿍 가라사대 (0) | 2024.05.30 |
---|---|
1706번: 크로스워드 (0) | 2024.05.30 |
15819번: 너의 핸들은 (0) | 2024.05.29 |
14175번: The Cow-Signal (0) | 2024.05.29 |
18198번: Basketball One-on-One (0) | 2024.05.29 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!