728x90
1. 가희와 키워드(Silver 2)
[백준]
https://www.acmicpc.net/problem/22233
[깃허브]
ForCodeKata/baekjoon 문제집/가희와 키워드 at main · heesoo-park/ForCodeKata
알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.
github.com
작성한 코드는 다음과 같다.
import java.io.*
import java.util.*
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val (n, m) = br.readLine().split(' ').map { it.toInt() }
val keywords: HashSet<String> = hashSetOf()
repeat(n) {
keywords.add(br.readLine())
}
repeat(m) {
val usedKeywords = br.readLine().split(',')
usedKeywords.forEach {
if (keywords.contains(it)) keywords.remove(it)
}
bw.write("${keywords.size}\n")
}
bw.flush()
bw.close()
}
2. 최소 힙(Silver 2)
[백준]
https://www.acmicpc.net/problem/1927
[깃허브]
ForCodeKata/baekjoon 문제집/최소 힙 at main · heesoo-park/ForCodeKata
알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.
github.com
작성한 코드는 다음과 같다.
import java.io.*
import java.util.*
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = br.readLine().toInt()
val pq = PriorityQueue<Int>() { a, b ->
a.compareTo(b)
}
repeat(n) {
val num = br.readLine().toInt()
if (num == 0) {
if (pq.isNotEmpty()) {
bw.write("${pq.poll()}\n")
} else {
bw.write("0\n")
}
} else {
pq.offer(num)
}
}
bw.flush()
bw.close()
}
3. 랭킹전 대기열(Silver 2)
[백준]
https://www.acmicpc.net/problem/20006
[깃허브]
ForCodeKata/baekjoon 문제집/랭킹전 대기열 at main · heesoo-park/ForCodeKata
알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.
github.com
작성한 코드는 다음과 같다.
import java.io.*
import java.util.*
data class Player(
val level: Int,
val id: String
) {
companion object {
fun makePlayer(info: List<String>): Player {
return Player(info[0].toInt(), info[1])
}
}
}
val rooms: MutableList<MutableList<Player>> = mutableListOf()
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val (p, m) = br.readLine().split(' ').map { it.toInt() }
repeat(p) {
val player = Player.makePlayer(br.readLine().split(' '))
if (rooms.isEmpty()) {
rooms.add(mutableListOf(player))
} else {
var flag = false
for (i in rooms.indices) {
if (rooms[i].size < m && rooms[i][0].level in player.level - 10..player.level + 10) {
rooms[i].add(player)
flag = true
break
}
}
if (!flag) {
rooms.add(mutableListOf(player))
}
}
}
rooms.forEach { room ->
if (room.size == m) bw.write("Started!\n")
else bw.write("Waiting!\n")
val sortedRoom = room.sortedBy { it.id }
sortedRoom.forEach { member ->
bw.write("${member.level} ${member.id}\n")
}
}
bw.flush()
bw.close()
}
반응형
'Kotlin > Algorithm Problems' 카테고리의 다른 글
<백준> 24.05.28에 푼 문제 (0) | 2024.05.28 |
---|---|
<백준> 24.05.27에 푼 문제들 (0) | 2024.05.27 |
<백준> 24.05.23에 푼 문제들 (0) | 2024.05.23 |
<백준> 24.05.22에 푼 문제들 (0) | 2024.05.22 |
<백준> 24.05.20에 푼 문제들 (0) | 2024.05.20 |