728x90
1. 비밀번호 발음하기(Silver 5)
[백준]
https://www.acmicpc.net/problem/4659
[깃허브]
ForCodeKata/baekjoon 문제집/비밀번호 발음하기 at main · heesoo-park/ForCodeKata
Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.
github.com
작성한 코드는 다음과 같다.
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val vowel = listOf('a', 'e', 'i', 'o', 'u')
while (true) {
val input = readln()
if (input == "end") break
var cntOfVowel = 0
var isFinish = false
for (i in input.indices) {
if (input[i] in vowel) cntOfVowel += 1
if (i > 1) {
if (input[i] in vowel && input[i - 1] in vowel && input[i - 2] in vowel ||
input[i] !in vowel && input[i - 1] !in vowel && input[i - 2] !in vowel) {
bw.write("<${input}> is not acceptable.\n")
isFinish = true
break
}
}
if (i > 0 && input[i] == input[i - 1]) {
if (input[i] != 'e' && input[i] != 'o') {
bw.write("<${input}> is not acceptable.\n")
isFinish = true
break
}
}
}
if (cntOfVowel == 0 && !isFinish) {
bw.write("<${input}> is not acceptable.\n")
isFinish = true
}
if (!isFinish) bw.write("<${input}> is acceptable.\n")
}
bw.flush()
bw.close()
}
2. 임스와 함께하는 미니게임(Silver 5)
[백준]
https://www.acmicpc.net/problem/25757
[깃허브]
ForCodeKata/baekjoon 문제집/임스와 함께하는 미니게임 at main · heesoo-park/ForCodeKata
Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.
github.com
작성한 코드는 다음과 같다.
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val (n, c) = readln().split(' ')
val requestList = mutableListOf<String>()
repeat(n.toInt()) {
requestList.add(readln())
}
val people = requestList.groupingBy { it }.eachCount().keys
when (c) {
"Y" -> bw.write("${people.size}")
"F" -> bw.write("${people.size / 2}")
"O" -> bw.write("${people.size / 3}")
}
bw.flush()
bw.close()
}
3. 쿠키의 신체 측정(Silver 4)
[백준]
https://www.acmicpc.net/problem/20125
[깃허브]
ForCodeKata/baekjoon 문제집/쿠키의 신체 측정 at main · heesoo-park/ForCodeKata
Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.
github.com
작성한 코드는 다음과 같다.
import java.io.BufferedWriter
import java.io.OutputStreamWriter
private lateinit var square: Array<CharArray>
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val size = readln().toInt()
square = Array(size + 1) { CharArray(size + 1) }
repeat(size) { r ->
val line = readln()
for (c in 1..size) {
square[r + 1][c] = line[c - 1]
}
}
val heart = findHeart(size)
bw.write("${heart[0]} ${heart[1]}\n")
var leftArm = 0
for (i in heart[1] - 1 downTo 1) {
if (square[heart[0]][i] == '*') leftArm++
else break
}
bw.write("$leftArm ")
var rightArm = 0
for (i in heart[1] + 1..size) {
if (square[heart[0]][i] == '*') rightArm++
else break
}
bw.write("$rightArm ")
var waist = 0
var waistEnd = heart[0]
for (i in heart[0] + 1..size) {
if (square[i][heart[1]] == '*') {
waistEnd++
waist++
}
else break
}
bw.write("$waist ")
var leftLeg = 0
for (i in waistEnd + 1..size) {
if (square[i][heart[1] - 1] == '*') leftLeg++
else break
}
bw.write("$leftLeg ")
var rightLeg = 0
for (i in waistEnd + 1..size) {
if (square[i][heart[1] + 1] == '*') rightLeg++
else break
}
bw.write("$rightLeg\n")
bw.flush()
bw.close()
}
fun findHeart(size: Int): List<Int> {
for (i in 1..size) {
for (j in 1..size) {
if (square[i - 1][j] == '*' && square[i][j - 1] == '*'
&& square[i + 1][j] == '*' && square[i][j + 1] == '*') {
return listOf(i, j)
}
}
}
return listOf(size, size)
}
반응형
'Kotlin > Algorithm Problems' 카테고리의 다른 글
<백준> 24.05.16에 푼 문제들 (1) | 2024.05.16 |
---|---|
<백준> 24.05.14에 푼 문제들 (0) | 2024.05.14 |
<백준> 24.05.09에 푼 문제들 (0) | 2024.05.09 |
<백준> 24.05.08에 푼 문제들 (0) | 2024.05.08 |
<백준> 24.05.07에 푼 문제들 (0) | 2024.05.07 |