Post

[BOJ 10809] 알파벳 찾기

Baekjoon Online Judge 10809(Java 11)
[알파벳 찾기] 문제 풀이

[BOJ 10809] 알파벳 찾기

-> 문제 바로가기



시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초256 MB27494214874312217553.731%

문제


  • 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.


입력


  • 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.


출력


  • 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, … z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.

  • 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.


예제


1
2
// 입력
baekjoon
1
2
// 출력
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


출처


  • 문제를 만든 사람: baekjoon
  • 잘못된 데이터를 찾은 사람: djm03178
  • 데이터를 추가한 사람: djm03178


알고리즘 분류








제출



내 제출


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.*;
import java.util.*;

public class Main {

    public static void solution() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        char[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
        String s = br.readLine();

        char[] str = s.toCharArray();

        for (int i = 0; i < alphabet.length; i++) {
            int answer = 0;
            for (int j = 0; j < str.length; j++) {
                if (str[j] == alphabet[i]) {
                    answer = j;
                    break;
                } else {
                    answer = -1;
                }
            }
            bw.write(String.valueOf(answer + " "));
        }


        bw.flush();
        bw.close();
        br.close();
    }


    public static void main(String[] args) throws IOException {
        solution();
    }
}


런타임메모리
128 ms15952 KB


Reference


This post is licensed under CC BY 4.0 by the author.