10769번: 행복한지 슬픈지백준/문제2024. 2. 5. 17:14
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/10769
언어 : Kotlin
문제 설명 :
승엽이는 자신의 감정을 표현하기 위해서 종종 문자 메시지에 이모티콘을 넣어 보내곤 한다. 승엽이가 보내는 이모티콘은 세 개의 문자가 붙어있는 구조로 이루어져 있으며, 행복한 얼굴을 나타내는 :-) 와 슬픈 얼굴을 나타내는 :-( 가 있다.
혜성이는 승엽이의 이모티콘을 귀여운 척이라고 생각해 매우 싫어하므로, 승엽이의 문자가 오면 전체적인 분위기만 판단해서 알려주는 프로그램을 작성하고 싶다.
입력 :
첫 줄에 최소 1개에서 최대 255개의 문자들이 입력된다.
출력 :
출력은 다음 규칙에 따라 정해진다.
어떤 이모티콘도 포함되어 있지 않으면, none 을 출력한다.
행복한 이모티콘과 슬픈 이모티콘의 수가 동일하게 포함되어 있으면, unsure 를 출력한다.
행복한 이모티콘이 슬픈 이모티콘보다 많이 포함되어 있으면, happy 를 출력한다.
슬픈 이모티콘이 행복한 이모티콘보다 많이 포함되어 있으면, sad 를 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 256MB
입출력 예 :
입력 | 출력 |
How are you :-) doing :-( today :-)? | happy |
:) | none |
This:-(is str:-(:-(ange te:-)xt. | sad |
풀이 :
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val cnt = IntArray(2) { 0 }
val emoticon = readLine().replace("[a-z|A-Z]".toRegex(), "").filter { !it.isWhitespace() }.chunked(3)
cnt[0] = emoticon.count { it == ":-)" }
cnt[1] = emoticon.count { it == ":-(" }
bw.write(if (cnt.sum() == 0) "none" else { if (cnt[0] == cnt[1]) "unsure" else if (cnt[0] > cnt[1]) "happy" else "sad" })
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
2002번: 추월 (1) | 2024.02.07 |
---|---|
1551번: 수열의 변화 (1) | 2024.02.06 |
11944번: NN (1) | 2024.02.05 |
15000번: CAPS (1) | 2024.02.05 |
2870번: 수학숙제 (0) | 2024.02.02 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!