상세 컨텐츠

본문 제목

JAVA. 백준 알고리즘 단계별 문제 7단계(문제 번호 10809)

공-부/백준 알고리즘

by 사랑짱 2021. 6. 1. 19:27

본문

(문제 번호 10809)

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

 

 

문제 해결 포인트

입력 받은 문자열에 들어가는 알파벳들의 각 위치를 출력해야한다.

(위치는 0부터 시작한다. 문자열의 첫 알파벳은 위치가 0이다.)

 

 

문제 해결 과정

1. 먼저 각 알파벳의 위치를 가리킬 int형 배열을 생성하어 -1로 초기화 시킨다.

   (index 0 - 'a' 위치 / index 1 - 'b' 위치 / index 2 - 'c' 위치 .....)

2. String 타입으로 문자열을 입력 받는다.

3. charAt()을 이용하여 각 인덱스에 해당하는 문자를 추출하여 ch 변수에 저장한다.

4. ch 문자의 위치를 앞서 만든 alpha 배열의 값으로 바꿔준다.

   (이때, ch가 가지고 있는 아스키코드 값에서 'a' 또는 97을 빼주면 된다.)


※ 동일 문자가 포함되어 있는 경우, 처음 나타난 위치로 나타내야 하므로   

조건문을 통해 동일 문자에 대해서는 적용하지 않도록 한다.

 

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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class No03 {


    public static void main(String[] args) throws IOException {                
        int[] alpha = new int[26];

        for(int i = 0; i < alpha.length;i++) {
            alpha[i] = -1;
        }
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        
        String str = br.readLine();

        for(int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            
            if(alpha[ch -'a'== -1) {    
                alpha[ch -'a'= i;
            }
        }
 
        for(int i : alpha) {
            System.out.print(i + " ");
        }
   } //main

} //class
cs

 

 

관련글 더보기