알고리즘 연습
[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 + " ");
}
}
}