10809번: 알파벳 찾기백준/단계별로 풀어보기2023. 5. 24. 14:57
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/10809
언어 : Kotlin
문제 설명 :
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
- 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.
- 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.
- 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 256MB
입출력 예 :
입력 | 출력 |
baekjoon | 1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 |
풀이 :
import java.io.*
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val word = br.readLine()
val intarray = IntArray(('a'..'z').count()) { -1 }
for (i in word.indices) {
if (intarray[word[i] - 'a'] != -1) {
continue
} else {
intarray[word[i] - 'a'] = i
}
}
bw.write(intarray.joinToString(" "))
bw.flush()
bw.close()
}
과거 프로그래머스에서 풀었던 모스부호(1)의 심화 과정이라고 생각한다.
'백준 > 단계별로 풀어보기' 카테고리의 다른 글
1152번: 단어의 개수 (0) | 2023.05.24 |
---|---|
2675번: 문자열 반복 (0) | 2023.05.24 |
11720번: 숫자의 합 (0) | 2023.05.24 |
11654번: 아스키 코드 (0) | 2023.05.24 |
9086번: 문자열 (0) | 2023.05.24 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!