[백준] 10809번 알파벳 찾기 JAVA (자바) 풀이
문제 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
* 독학으로 익히는 코딩이라 틀린 것이 있을 수 있습니다. 오류가 있다면 댓글을 통해 알려주세요. 감사합니다. *