본문 바로가기

코딩테스트/백준

[백준-자바] 10809번 알파벳 찾기 / 2022.01.23

 

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

 

10809번: 알파벳 찾기

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

www.acmicpc.net

 

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       int [] alpha = new int [26]; // 알파벳 -1로 초기화해야함
       
       // -1로 초기화
       for(int i=0; i<26; i++) {
          alpha[i] = -1;
       }
       
       String str = sc.next();  // 단어 입력
       char [] strBreak = new char [str.length()] ; // 단어를 문자로 쪼갠걸 저장하는 배열
       
       int numChar; // 몇 번째 알파벳?
       
       for(int i=0; i<str.length(); i++) {
          strBreak[i] = str.charAt(i);     // 단어 i번째 문자를 문자형 배열에 저장
          numChar = strBreak[i] - 97;      // 아스키코드를 사용, a는 아스키코드값으로 97 이고
          if(alpha[numChar] != -1)         // 배열은 0번에 해당하므로 -97를 해주면 해당 배열 번호를
             continue;                     // 찾을 수 있다
          else
             alpha[numChar] = i;
       }
       
       for(int i=0; i<26; i++) {
          System.out.print(alpha[i] + " ");
       }
       
    } 
}

 

* 간단한 문제라 풀이 생략