10809번: 알파벳 찾기
- 입력으로 주어지는 문자열은 모두 소문자임.
- a~z를 모두 출력하여 주어진 문자열에 대해 해당 문자가 처음으로 나오는 위치를 출력한다
- 위치는 0부터 시작
import java.util.Scanner;
public class String_2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int [] arr = new int[26];
for(int i=0; i<arr.length;i++){
arr[i] = -1;
}
String S = in.nextLine();
for(int i=0; i<S.length(); i++){
char ch = S.charAt(i);
if(arr[ch -97]== -1){
arr[ch - 97] = i;
}
}
for(int val :arr){
System.out.print(val + " ");
}
}
}
- 사이즈가 26인 int형 배열을 생성하여 모두 -1로 초기화 시킴.
- S로 문자열을 입력받음
- charAt 메소드를 사용하여 문자를 추출하고 ch변수에 저장
- 동일 문자가 포함되어 있는 경우 처음 나타난 위치를 기준으로 나타내어야 하기 때문에 if 문으로 arr[ch - 97 or ‘a’] == -1 인 경우, 한번도 배열의 원소 값이 초기화 되지않은 경우에만 arr[ch - 97] 인덱스의 i 값을 넣어줌
- i 값이 곧 그 알파벳이 등장한 위치임 arr[ch - 97]을 통해 그 알파벳의 순서와 동일한 인덱스의 값을 찾는 것