문제 출처 : https://www.acmicpc.net/problem/25205
언어 : Kotlin
문제 설명 :
시은이는 종합설계 프로젝트로 오픈월드 액션 고스톱 게임 경로당펑크 2077을 개발하고 있다. 대사를 추가하던 중, 사용자 이름에 따라 '을' 또는 '를' 중 하나를 출력해야 함을 깨달았다. 예를 들어 이름이 도현이라면 도현'을' 이라고 출력해야 하고, 인하라면 인하'를' 이라고 출력해야 한다. 그 기준은 이름 마지막 글자의 받침 존재 여부이다.
사용자는 반드시 한글 음절로만 구성된 이름을 사용한다. 이름의 모든 음절은 위 표의 초성, 중성, 종성을 순서대로 하나씩만 골라 조합하여 만들 수 있다. 예를 들어 음절 인(초성 ㅇ, 중성 ㅣ, 종성 ㄴ), 하(초성 ㅎ, 중성 ㅏ, 종성 없음)는 사용자 이름에 등장할 수 있다. 반대로 짜, 계, 와, 삵은 모두 위 표에 없는 낱자가 포함되어 사용자 이름에 등장하지 않는다.
위 그림과 같은 표준 두벌식 자판에서 사용자 이름을 영문 모드 소문자로 타이핑하여 얻는 문자열을 문자열 s라고 하자. 문자열 s가 주어지면 원래 사용자 이름 마지막 글자에 받침이 존재하는지 판별하는 프로그램을 작성하라.
입력 :
첫 번째 줄에 문자열 s의 길이를 나타내는 정수 N이 주어진다.
두 번째 줄에 문자열 s가 주어진다.
출력 :
사용자 이름 마지막 글자에 받침이 있다면 1, 없다면 0을 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 1024MB
- 2 ≤ N ≤ 30
입출력 예 :
입력 | 출력 |
7 wnehgus |
1 |
8 rlarudxo |
0 |
10 anzufutaba |
1 |
풀이 :
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 mid = arrayOf('k', 'i', 'j', 'u', 'h', 'y', 'n', 'b', 'm', 'l', 'o', 'p')
val n = readLine().toInt()
val s = readLine()
bw.write(if (s.last() !in mid) "1" else "0")
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
14175번: The Cow-Signal (0) | 2024.05.29 |
---|---|
18198번: Basketball One-on-One (0) | 2024.05.29 |
24510번: 시간복잡도를 배운 도도 (0) | 2024.05.28 |
20154번: 이 구역의 승자는 누구야?! (0) | 2024.05.28 |
22351번: 수학은 체육과목 입니다 3 (0) | 2024.05.27 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!