알고리즘 연습

[10809번] 알파벳 찾기 - Java

밀깜 2021. 11. 13. 11:37

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

 

10809번: 알파벳 찾기

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

www.acmicpc.net

 

1. 배운점

- 아스키 코드를 활용하면 문자열을 더 쉽게 다룰 수 있다.

- 배열은 필요한 만큼만 선언해서 사용한다. 

 

2. 개선할 점

 

3. 궁금한 점

 

4. 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

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

		// a ~ z를 상징하는 배열 생성(모든 값 -1로 초기화)
		int [] alphabet = new int [26];
		for(int i = 0; i < alphabet.length; i++) {
			alphabet[i] = -1;
		}

		// import java.io.BufferedReader
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// 단어 입력받기
		String word = br.readLine();

		// 중첩 반복문으로 출력한 단어 길이를 분석하기
		for (int i = 0; i < word.length(); i++) {
			for(int j = 0; j < alphabet.length; j++) {
				
				// 이미 값이 입력된 경우, 반복문 끝으로 이동
				if (alphabet[j] != -1) {
					continue; 
				}
				// 입력된 적이 없는 경우 첫 번째 위치 추가
				if (word.charAt(i)== j + 97) { 
					alphabet[j] = i;
				}
			}
		}
		
		// 반복문을 활용해 값 출력
		for(int i : alphabet) {
			System.out.print(i + " ");
		}
	}
}