6550번: 부분 문자열백준/문제2024. 3. 6. 11:55
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/6550
언어 : Kotlin
문제 설명 :
2개의 문자열 s와 t가 주어졌을 때 s가 t의 부분 문자열인지 판단하는 프로그램을 작성하라. 부분 문자열을 가지고 있는지 판단하는 방법은 t에서 몇 개의 문자를 제거하고 이를 순서를 바꾸지 않고 합쳤을 경우 s가 되는 경우를 이야기 한다.
입력 :
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다.
출력 :
입력된 s와 t의 순서대로 s가 t의 부분 문자열인 경우 Yes라 출력하고 아닐 경우 No라고 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 1288MB
입출력 예 :
입력 | 출력 |
sequence subsequence person compression VERDI vivaVittorioEmanueleReDiItalia caseDoesMatter CaseDoesMatter |
Yes No Yes No |
풀이 :
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))
var input: String?
while (true) {
input = readLine()
if (input.isNullOrEmpty()) break
val (s, t) = input.split(" ")
var idx = 0
for (i in t.indices) {
if (s[idx] == t[i]) idx++
if (idx == s.length) break
}
bw.appendLine(if (idx == s.length) "Yes" else "No")
}
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
19583번: 싸이버개강총회 (0) | 2024.03.07 |
---|---|
13417번: 카드 문자열 (1) | 2024.03.06 |
13413번: 오셀로 재배치 (2) | 2024.03.06 |
10823번: 더하기 2 (1) | 2024.03.05 |
2204번: 도비의 난독증 테스트 (0) | 2024.03.05 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!