링크
https://www.acmicpc.net/problem/10809
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
문제

풀이
1. 문자열 입력 받음
2. 각각의 알파벳 a - z 까지 위치를 반환 -> 알파벳은 26개. -> 총 26개 위치 반환
3. a - z 중 일치하는 알파벳이 없으면 -1 반환

indexOf 라는 내장함수 사용.
찾는 단어가 있으면 해당 인덱스를 반환하고
찾는 단어가 없으면 -1로 반환한다.
* indexOf의 내부 모습

public static void main(String[] args) {
String str = "baekjoon";
System.out.println(str.indexOf("b"));
System.out.println(str.indexOf("a"));
System.out.println(str.indexOf("e"));
System.out.println(str.indexOf("k"));
System.out.println(str.indexOf("j"));
System.out.println(str.indexOf("o"));
System.out.println(str.indexOf("o"));
System.out.println(str.indexOf("n"));
}

indexOf를 사용하여 로직 구현
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
/**
* 알파벳찾기
* @param args
*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringBuilder sb = new StringBuilder();
for(char i = 'a'; i <= 'z'; ++i) {
sb.append(str.indexOf(i)).append(" ");
}
System.out.println(sb.toString().substring(0,sb.length()-1));
}
}

후기
* 난이도 (5점 만점)
5 : 풀 줄 알면 기업 코딩테스트는 문제 없음.
4 : 평균적인 기업 코딩테스트의 중간 이상.
3 : 평균적인 기업 코딩테스트의 쉬운 문제 .
2 : 알고리즘 문제를 연습하고 있다면 풀 수 있는 문제.
1 : 시간이 오래 걸리지 않고, 누구나 풀 수 있는 문제.
난이도는 매우 쉬운 편이었으며 내장함수를 알고 있다면 쉽게 풀 수 있는 문제이다.
'백준알고리즘 > 문자열' 카테고리의 다른 글
[백준] 18406 럭키 스트레이트 - JAVA 자바 (0) | 2021.08.12 |
---|---|
[백준] 2675 문자열 반복 - JAVA 자바 (0) | 2021.08.11 |
[백준] 11720 숫자의 합 - JAVA 자바 (0) | 2021.08.11 |