[단계별로 풀어보기] 10809번 알파벳 찾기 (문자열)

Jun_Gyu·2023년 4월 3일
0

BackJoon Online Judge

목록 보기
15/18

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

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		// 알파벳 상태 출력할 배열 생성 및 초기값 -1로 지정
		int arr[] = new int[26];

		for (int i = 0; i < arr.length; i++) {
			arr[i] = -1;
		}
		
		// 단어 입력
		String word = br.readLine();
		
		// word 의 문자열 처음부터 끝자리까지 16진수 아스키코드 번호 추출
		for (int i = 0; i < word.length(); i++) {
			char ch = word.charAt(i);
			
			// 해당 배열의 값이 -1이면 i값으로 대입 
			// (반복되는 문자가 있을 시 첫번째 문자의 자리값이 들어가야 함)
			if(arr[ch - 97] == -1) {
				arr[ch- 97] = i;
			}
		}
		
		// 출력
		for(int val : arr)
		System.out.print(val + " ");
	}
}

위의 문제에서는 입력된 단어에서 사용된 알파벳들이 각각 몇번째 자리에 들어가있는지를 배열을 통해 출력하는 문제이다.

먼저 알파벳의 총 길이와 같은 26칸 짜리의 배열을 생성해준 뒤, -1로 초기값을 지정해준다.

이후 문자를 입력받아서 반복문을 이용하여 아스키코드의 번호값을 구한 뒤,
문자'a'의 아스키 번호인 97을 빼게 되면

arr배열의 해당하는 알파벳 자리로 반복문 i의 값이 들어가게 된다.


profile
시작은 미약하지만, 그 끝은 창대하리라

0개의 댓글