Seojoo21 2022. 2. 2. 18:27

1. 문제

https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

 

2. 내 코드

import java.io.*;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int[] alphabetArr = new int[26];
		
		for (int i=0; i<alphabetArr.length; i++) {
			alphabetArr[i] = -1;
		}
		
		String str = br.readLine();
		
		for (int i=0; i<str.length(); i++) {
			char ch = str.charAt(i);
			
			if( alphabetArr[ch-'a'] == -1) { // 처음 등장하는 위치를 찾기 위해. 중복 등장 무시. 
			alphabetArr[ch-'a'] = i;
			}
		}
		
		for(int result : alphabetArr) {
			System.out.print(result + " ");
		}
	
	}

}

 

3. 다시 체크할 부분

1. 처음 알파벳 개수 체크용 배열 만들때 배열의 모든 요소값을 -1로 둘 수 있다는 생각을 떠올렸어야함

2. 마지막에 배열 출력시 향상된 for 문 활용