본문 바로가기
Baekjoon/[1] 자료구조

[백준] 10809번 알파벳 찾기 JAVA (자바) 풀이

by Poorm 푸름 2023. 8. 13.

문제 10809번

 

 [입력]

  

 :  첫째 줄에 단어 S

 

 :  알파벳 소문자


 [출력]


 :  26 자리를 a ~ z 의 순으로 모두 출력하고 공백으로 구분한다

    단, 이 26자리는 알파벳이 아닌 숫자로 표현한다 ( 표현 규칙은 아래와 같다 )

 

 : 입력된 S의 단어에 있는 알파벳들을 0부터 시작해 자릿수를 부여한다

   (ex) l o v e  →  0, 1, 2, 3

     

 : 부여받은 자릿수를 26자리에 순서대로 해당하는 자리에 넣어준다

   (ex) a c b  →  0, 1, 2 

          출력  →  0 2 1 

          이처럼 a ~ z 순으로 순서대로 출력

 

  : 부여받지 못한 알파벳은 -1 처리

 

 [코드]

import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        
        for(char i='a';i<='z';i++){ //char 대신 int도 괜찮아
           System.out.print(s.indexOf(i)+" ");
        }
    }
}

 

 [해설]
     

 :  String s = br.readLine(); 첫째줄 입력받기
         
 :  for(char i='a' ; i<='z' ; i++){
             System.out.print(s.indexOf(i)+" "); s에서 찾은 것들은 index 값 출력 없으면 -1 출력
    }                   

 

 

  [팁]

  : indexOf 함수를 알고 있다면 단번에 풀리는 문제이다

    indexOf(찾을문자,시작할위치)란 특정문자나 문자열이 처음 발견되는 인덱스, 즉 자릿수를 반환하며

    찾지못하면 -1을 반환하는 함수이다

 

    

이제 풀어보러 갈께요 :)

 

 

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

 

10809번: 알파벳 찾기

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

www.acmicpc.net

 

* 독학으로 익히는 코딩이라 틀린 것이 있을 수 있습니다. 오류가 있다면 댓글을 통해 알려주세요. 감사합니다. *