1622번: 공통 순열백준/문제2024. 8. 28. 16:31
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/1622
언어 : Kotlin
문제 설명 :
알파벳 소문자로 이루어진 두 문자열 a와 b에 대해, a의 부분 수열의 순열이자 b의 부분 수열의 순열이 되는 가장 긴 문자열 x를 구하여라.
입력 :
각각의 입력은 한 쌍의 줄로 이루어져 있다.
첫 줄에는 문자열 a가 두 번째 줄에는 문자열 b가 주어진다.
각각의 문자열은 줄로 구분되며, 최대 1000개의 알파벳 소문자로 이루어졌다.
출력 :
각각의 입력에 대해, x를 출력한다.
가능한 x가 여러 개 존재하는 경우, 사전순으로 가장 앞에 오는 것을 출력한다.
제한 사항 :
- 시간 제한 : 2초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
pretty women walking down the street |
e nw et |
풀이 :
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
Looper@ while (true) {
val a = IntArray(26)
val b = IntArray(26)
for (i in 0 until 2) {
val input = readLine() ?: break@Looper
input.forEach {
if (i == 0) a[it.code - 97]++
else b[it.code - 97]++
}
}
val sb = StringBuilder()
for (i in 0 until 26) {
val char = (i + 97).toChar()
val cnt = minOf(a[i], b[i])
sb.append("$char".repeat(cnt))
}
bw.appendLine(sb.toString())
bw.flush()
}
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
8387번: Dyslexia (1) | 2024.08.29 |
---|---|
9612번: Maximum Word Frequency (0) | 2024.08.28 |
22950번: 이진수 나눗셈 (0) | 2024.08.27 |
16944번: 강력한 비밀번호 (0) | 2024.08.27 |
4072번: Words (0) | 2024.08.26 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!