

문제 출처 : https://www.acmicpc.net/problem/9933
9933번: 민균이의 비밀번호
첫째 줄에 단어의 수 N (2 ≤ N ≤ 100)이 주어진다. 다음 N개 줄에는 파일에 적혀있는 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있으며, 길이는 2보다 크고 14보다 작은
www.acmicpc.net
언어 : Kotlin
문제 설명 :
창영이는 민균이의 컴퓨터를 해킹해 텍스트 파일 하나를 자신의 메일로 전송했다. 파일에는 단어가 한 줄에 하나씩 적혀있었고, 이 중 하나는 민균이가 온라인 저지에서 사용하는 비밀번호이다.
파일을 살펴보던 창영이는 모든 단어의 길이가 홀수라는 사실을 알아내었다. 그리고 언젠가 민균이가 이 목록에 대해서 얘기했던 것을 생각해냈다. 민균이의 비밀번호는 목록에 포함되어 있으며, 비밀번호를 뒤집어서 쓴 문자열도 포함되어 있다.
예를 들어, 민균이의 비밀번호가 "tulipan"인 경우에 목록에는 "napilut"도 존재해야 한다. 알 수 없는 이유에 의해 모두 비밀번호로 사용 가능하다고 한다.
민균이의 파일에 적혀있는 단어가 모두 주어졌을 때, 비밀번호의 길이와 가운데 글자를 출력하는 프로그램을 작성하시오.
입력 :
첫째 줄에 단어의 수 N (2 ≤ N ≤ 100)이 주어진다. 다음 N개 줄에는 파일에 적혀있는 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있으며, 길이는 2보다 크고 14보다 작은 홀수이다.
출력 :
첫째 줄에 비밀번호의 길이와 가운데 글자를 출력한다. 항상 답이 유일한 경우만 입력으로 주어진다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
4 las god psala sal |
3 a |
4 kisik ptq tttrp tulipan |
5 s |
풀이 :
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
var result = ""
val n = readLine().toInt()
val list = mutableListOf<String>()
repeat(n) {
list += readLine()
}
for (i in list.indices) {
val cur = list[i]
val reversed = list.map { it.reversed() }
for (j in reversed.indices) {
if (cur == reversed[j]) result = "${cur.length} ${cur[cur.length / 2]}"
}
}
bw.write(result)
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
15000번: CAPS (1) | 2024.02.05 |
---|---|
2870번: 수학숙제 (0) | 2024.02.02 |
1356번: 유진수 (0) | 2024.01.31 |
7490번: 0 만들기 (1) | 2024.01.30 |
1755번: 숫자놀이 (0) | 2024.01.29 |

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!