1515번: 수 이어 쓰기백준/문제2024. 4. 11. 12:05
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/1515
언어 : Kotlin
문제 설명 :
세준이는 1부터 N까지 모든 수를 차례대로 공백없이 한 줄에 다 썼다. 그리고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다.
세준이는 저녁을 먹으러 갔다 와서, 자기가 쓴 수의 일부가 지워져있는 모습을 보고 충격받았다.
세준이는 수를 방금 전과 똑같이 쓰려고 한다. 하지만, N이 기억이 나지 않는다.
남은 수를 이어 붙인 수가 주어질 때, N의 최솟값을 구하는 프로그램을 작성하시오. 아무것도 지우지 않을 수도 있다.)
입력 :
첫째 줄에 지우고 남은 수를 한 줄로 이어 붙인 수가 주어진다. 이 수는 최대 3,000자리다.
출력 :
가능한 N 중에 최솟값을 출력한다.
제한 사항 :
- 시간 제한 : 2초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
1234 | 4 |
234092 | 20 |
999909 | 49 |
82340329923 | 43 |
32098221 | 61 |
1111111 | 14 |
00000000000000000000000000000000000000000000000000000000000000000000000 | 400 |
345029834023049820394802334909240982039842039483294792934790209 | 279 |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import kotlin.system.exitProcess
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
var cur = 0
var index = 0
val n = readLine()
while (cur++ <= 30000) {
val temp = cur.toString()
for (i in temp.indices) {
if (temp[i] == n[index]) index++
if (index == n.length) {
bw.write("$cur")
bw.flush()
bw.close()
exitProcess(0)
}
}
}
}
'백준 > 문제' 카테고리의 다른 글
4597번: 패리티 (0) | 2024.04.11 |
---|---|
10266번: 시계 사진들 (0) | 2024.04.11 |
17350번: 2루수 이름이 뭐야 (0) | 2024.04.09 |
9202번: Boggle (0) | 2024.04.09 |
7600번: 문자가 몇갤까 (0) | 2024.04.09 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!