1475번: 방 번호백준/문제2023. 8. 30. 13:36
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/1475
언어 : Kotlin
문제 설명 :
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
- 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
- 첫째 줄에 필요한 세트의 개수를 출력한다.
제한 사항 :
- 시간 제한 : 2초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
9999 | 2 |
122 | 2 |
12635 | 1 |
888888 | 6 |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = br.readLine().chunked(1).map { it.toInt() }
val arr = Array(10) { 0 }
for (c in n) {
if (c == 9) arr[6] += 1 else arr[c] += 1
}
arr[6] = if (arr[6] % 2 > 0) arr[6] / 2 + 1 else arr[6] / 2
var max = 0
for (i in arr) max = if (max < i) i else max
bw.write(max.toString())
bw.flush()
bw.close()
}
아래 풀이를 반례를 넣어가며 시도해보다가 안되서 윗 풀이로 전부 바꿨다.
실패한 풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import kotlin.math.roundToInt
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = br.readLine().chunked(1).groupingBy { it.toInt() }.eachCount()
val result =
when (n.maxOf { it.key }) {
6 -> if (n.containsKey(9)) ((n[6]!! + n[9]!!).toDouble() / 2.0).roundToInt() else (n[6]!!.toDouble() / 2.0).roundToInt()
9 -> if (n.containsKey(6)) ((n[6]!! + n[9]!!).toDouble() / 2.0).roundToInt() else (n[9]!!.toDouble() / 2.0).roundToInt()
else -> n.maxOf { it.value }
}
if (result < n.maxOf { it.value }) bw.write("${n.maxOf { it.value }}") else bw.write("$result")
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
2752번: 세수정렬 (0) | 2023.08.30 |
---|---|
2420번: 사파리 월드 (0) | 2023.08.30 |
3046번: R2 (0) | 2023.08.29 |
10699번: 오늘 날짜 (0) | 2023.08.29 |
10808번: 알파벳 개수 (0) | 2023.08.29 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!