알파벳 찾기 (10809) 풀이

2023. 6. 16. 14:42BaekJoon/문자열

문제내용

사용자에게 단어를 입력받으면 알파벳 a~z순으로 없다면 -1을 있다면 처음 등장하는 인덱스 번호를 출력하는 문제이다.


풀이

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	public static void main(String[] args) throws Exception {
		char[] cArr = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String s = br.readLine();
		
		for(int i = 0; i < cArr.length; i++){
			 int index = s.indexOf(cArr[i]);
			 if(i == cArr.length-1){
				 bw.write(index+"");
			 }else {
				 bw.write(index+" ");
			 }
		}
		bw.flush();
		bw.close();
	}

}

사용자에게 단어를 입력받기 위해 BufferedReader를 사용해 s에 입력받았다.

a~z를 기억하고 있는 문자열 배열 cArr를 선언하고 단어의 알파벳 하나가 포함되어 있는지 확인해 -1 또는 인덱스 번호를 BufferedWriter를 이용해 출력했다.


겪었던 문제

이 문제에서 for문 안에 if문에서 처음엔 bw.write(index)만을 출력했는데 틀렸다. 이유는 뭘까? 전글을 보고온 사람이라면 정답을 말했을 것이다. 숫자만 입력하면 아스키코드로변환시켜버리기 때문에 틀린 것이다. 그래서 문자열임을 암시하기 위해 ""를 사용 문제를 해결했다.

'BaekJoon > 문자열' 카테고리의 다른 글

단어의 개수 (1152) 풀이  (0) 2023.06.20
문자열 반복 (2675) 풀이  (0) 2023.06.16
숫자의 합 (11720) 풀이  (2) 2023.06.16
아스키 코드 (11654) 풀이  (0) 2023.06.16
문자열 (9086) 풀이  (0) 2023.06.16