문제 출처 : https://www.acmicpc.net/problem/26264
언어 : Kotlin
문제 설명 :
서울사이버대학교 빅데이터·정보보호학과는 빅데이터에 관심이 있는 학생들과 정보보호에 관심이 있는 학생들이 골고루 섞여 있는 학과이다.
빅데이터·정보보호학과에서 수업을 하던 노교수는 학생들이 빅데이터와 정보보호 중 어느 분야에 더 관심이 많은지 궁금해졌다. 그래서 학생들을 만날 때마다 항상 이를 물어보고 답을 bigdata 혹은 security로 구분하여 메모장에 적어두었는데, 실수로 띄어쓰기와 개행이 전혀 없는 상태로 기록해두었다.
이대로는 학생들이 빅데이터와 정보보호 중 어느 분야에 더 관심이 많은지를 알아낼 수 없기 때문에, 당신에게 분석을 의뢰했다. 물어본 학생의 수와 답이 주어질 때, 결과를 출력하자.
입력 :
첫 번째 줄에 물어본 학생의 수 N이 주어진다. (1 <= N <= 100,000)
두 번째 줄에 메모장에 적힌 답들이 한 줄의 문자열로 주어진다. 문자열은 bigdata 또는 security로만 구성되어 있으며, 띄어쓰기 등의 다른 문자가 포함되어 있지 않다.
출력 :
첫 번째 줄에 정보보호 분야보다 빅데이터 분야에 관심이 있는 학생이 더 많으면 "bigdata?"를, 빅데이터 분야보다 정보보호 분야에 관심이 있는 학생이 더 많으면 "security!"를, 같으면 "bigdata? security!"를 따옴표 없이 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 256MB
입출력 예 :
입력 | 출력 |
5 securitybigdatasecuritybigdatasecurity |
security! |
1 bigdata |
bigdata? |
6 bigdatabigdatabigdatasecuritysecuritysecurity |
bigdata? security! |
풀이 :
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 str = readLine().replace("[^b|s]".toRegex(), "").groupingBy { it }.eachCount()
val sSize = str.getOrDefault('s', 0)
val bSize = str.getOrDefault('b', 0)
bw.write(when {
sSize == bSize -> "bigdata? security!"
sSize > bSize -> "security!"
sSize < bSize -> "bigdata?"
else -> "Error"
})
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
1411번: 비슷한 단어 (0) | 2024.05.23 |
---|---|
18698번: The Walking Adam (0) | 2024.05.22 |
3111번: 검열 (0) | 2024.05.22 |
11008번: 복붙의 달인 (1) | 2024.05.21 |
25630번: 팰린드롬 소떡소떡 (0) | 2024.05.21 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!