hye-log

[백준]10809번 알파벳 찾기(JAVA) 본문

CodingTest/Baekjoon

[백준]10809번 알파벳 찾기(JAVA)

iihye_ 2023. 8. 13. 04:21

0. 문제 링크

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

 

10809번: 알파벳 찾기

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

www.acmicpc.net

 

1. 문제 설명

1) 주어진 문자열에서 각각의 알파벳이 포함되면 알파벳이 처음 등장하는 위치를, 포함되지 않았으면 -1 출력하기

 

2. 입출력

// input
baekjoon

// output
1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

 

3. 코드

import java.io.*;
import java.util.*;

public class b10809 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		
		int[] alphabet = new int[26]; // alphabet 배열
		Arrays.fill(alphabet, -1); // alphabet 배열 -1로 초기화
		for (int i = 0; i < str.length(); i++) { // 문자열의 크기만큼 반복
			if(alphabet[str.charAt(i) - 'a'] < 0) { // 값이 -1 이면
				alphabet[str.charAt(i) - 'a'] = i; // 현재 인덱스 넣기
			}
		}
		
		for (int i = 0; i < alphabet.length; i++) { // 결과 출력
			System.out.print(alphabet[i] + " ");
		}
		
	}

}

 

실행 결과

 

4. 회고

1) Arrays.fill 로 배열을 -1로 초기화 함

2) 주어진 문자열의 알파벳은 소문자로만 주어지므로 아스키 값 계산 시 'a' 만큼 빼줌

 

5. Github

https://github.com/iihye/Algorithm/blob/main/Baekjoon/b10809.java

 

 

728x90

'CodingTest > Baekjoon' 카테고리의 다른 글

[백준]1546번 평균(JAVA)  (0) 2023.08.13
[백준]1259번 팰린드롬수(JAVA)  (0) 2023.08.13
[백준]10250번 ACM 호텔(JAVA)  (0) 2023.08.13
[백준]8958번 OX퀴즈(JAVA)  (0) 2023.08.13
[백준]3052번 나머지(JAVA)  (0) 2023.08.13
Comments