![15904번: UCPC는 무엇의 약자일까?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeypMEC%2FbtsCOCI2W54%2FSlJPjPSkUPn4H4p6TTPOTK%2Fimg.png)
![스몰스테핑](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
문제 출처 : https://www.acmicpc.net/problem/15904
15904번: UCPC는 무엇의 약자일까?
첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는
www.acmicpc.net
언어 : Kotlin
문제 설명 :
UCPC는 '전국 대학생 프로그래밍 대회 동아리 연합 여름 대회'의 줄임말로 알려져있다. 하지만 이 줄임말이 정확히 어떻게 구성되었는지는 아무도 모른다. UCPC 2018을 준비하던 ntopia는 여러 사람들에게 UCPC가 정확히 무엇의 줄임말인지 물어보았지만, 아무도 정확한 답을 제시해주지 못했다. ntopia가 들은 몇 가지 답을 아래에 적어보았다.
- Union of Computer Programming Contest club contest
- Union of Computer Programming contest Club contest
- Union of Computer Programming contest club Contest
- Union of Collegiate Programming Contest club contest
- Union of Collegiate Programming contest Club contest
- Union of Collegiate Programming contest club Contest
- University Computer Programming Contest
- University Computer Programming Club contest
- University Computer Programming club Contest
- University Collegiate Programming Contest
- University CPC
- ...
ntopia는 이렇게 다양한 답을 듣고는 UCPC가 무엇의 약자인지는 아무도 모른다고 결론내렸다. 적당히 슥삭해서 UCPC를 남길 수 있으면 모두 UCPC의 약자인 것이다!
문자열이 주어지면 이 문자열을 적절히 축약해서 "UCPC"로 만들 수 있는지 확인하는 프로그램을 만들어보자.
축약이라는 것은 문자열에서 임의의 문자들을 제거하는 행동을 뜻한다. 예를 들면, "apple"에서 a와 e를 지워 "ppl"로 만들 수 있고, "University Computer Programming Contest"에서 공백과 소문자를 모두 지워 "UCPC"로 만들 수 있다.
문자열을 비교할 때는 대소문자를 구분해 정확히 비교한다. 예를 들어 "UCPC"와 "UCpC"는 다른 문자열이다. 따라서 "University Computer programming Contest"를 "UCPC"로 축약할 수 있는 방법은 없다.
그나저나 UCPC는 정말 무엇의 약자였을까? 정확히 아시는 분은 제보 부탁드립니다.
입력 :
첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 경우도 없다.
출력 :
첫 번째 줄에 입력으로 주어진 문자열을 적절히 축약해 "UCPC"로 만들 수 있으면 "I love UCPC"를 출력하고, 만들 수 없으면 "I hate UCPC"를 출력한다.
제한 사항 :
- 시간 제한 : 1초 (추가 시간 없음)
- 메모리 제한 : 1024MB
입출력 예 :
입력 | 출력 |
Union of Computer Programming Contest club contest | I love UCPC |
University Computer Programming | I hate UCPC |
풀이 :
정규식으로 한번 걷어내고 시작했다.
https://yoon-dailylife.tistory.com/113
Kotlin) 정규 표현식 정리
정규 표현식 정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어. 어떤 문자열에서 특정한 조건의 문자열을 찾고 싶을 때, 그 조건이 복잡한 경
yoon-dailylife.tistory.com
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val str = readLine().replace("[^C|P|U]".toRegex(), "")
val pattern = "UCPC"
var idx = 0
for (i in str.indices) {
if (str[i] == pattern[idx]) idx++
if (idx == 4) break
}
bw.write(if (idx == 4) "I love UCPC" else "I hate UCPC")
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
4659번: 비밀번호 발음하기 (2) | 2024.01.03 |
---|---|
12891번: DNA 비밀번호 (3) | 2024.01.02 |
25372번: 성택이의 은밀한 비밀번호 (1) | 2024.01.02 |
1013번: Contact (1) | 2023.12.29 |
8979번: 올림픽 (0) | 2023.12.28 |
![스몰스테핑](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!