문제 출처 : https://www.acmicpc.net/problem/30957
언어 : Kotlin
문제 설명 :
서울사이버대학교 빅데이터·정보보호학과는 빅데이터에 관심이 있는 학생들과 정보보호에 관심이 있는 학생들이 골고루 섞여 있는 학과이다. 2024학년도를 맞이하여 서울사이버대학교는 인공지능학과를 새로 만들게 되었다.
빅데이터·정보보호학과와 인공지능학과의 교육과정을 함께 구상하던 노교수와 천교수는 학생들이 빅데이터, 정보보호, 인공지능 중 어느 분야에 더 관심이 많은지 궁금해졌다. 그래서 학생들을 만날 때마다 항상 이를 물어보고 답을 B, S, A로 구분하여 메모장에 적어두었다. (B는 빅데이터, S는 정보보호, A는 인공지능을 의미한다.)
지금 상태로는 한눈에 들어오지 않아 학생들이 빅데이터, 정보보호, 인공지능 중 어느 분야에 더 관심이 많은지를 알아내기 어렵기 때문에, 당신에게 분석을 의뢰했다. 물어본 학생의 수와 답이 주어질 때, 결과를 출력하자.
입력 :
첫 번째 줄에 물어본 학생의 수 N이 주어진다. (1 ≤ N ≤ 10^5)
두 번째 줄에 메모장에 적힌 답들이 한 줄의 문자열로 주어진다. 문자열은 B, S, A로만 구성되어 있다.
출력 :
첫 번째 줄에 가장 많은 학생의 관심을 받는 분야의 문자를 출력한다. 만약 가장 많은 학생의 관심을 받는 분야가 2개라면, B, S, A의 순서로 모두 출력한다. 만약 세 분야의 관심이 동일하면, SCU를 출력한다. (SCU는 Seoul Cyber University의 약자이다.)
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 512MB
입출력 예 :
입력 | 출력 |
5 SBSBA |
BS |
1 A |
A |
6 ASBASB |
SCU |
풀이 :
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 n = readLine().toInt()
val group = readLine().chunked(1).groupingBy { it }.eachCount()
group.filter { it.value >= group.maxOf { it.value } }.also {
bw.write(
when (it.size) {
1 -> it.maxBy { it.value }.key
2 -> it.keys.sortedWith(compareBy<String> { it == "A" }.thenBy { it == "S" }.thenBy { it == "B" }).joinToString("")
else -> "SCU"
}
)
}
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
8371번: Dyslexia (0) | 2024.07.11 |
---|---|
27494번: 2023년은 검은 토끼의 해 (0) | 2024.07.11 |
28249번: Chili Peppers (0) | 2024.07.10 |
20362번: 유니대전 퀴즈쇼 (0) | 2024.07.09 |
30700번: KOREA 문자열 만들기 (0) | 2024.07.09 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!