문제 링크 : https://www.acmicpc.net/problem/10809
1. 요구 사항 이해
시간, 메모리 제한 : 1초 / 256MB
알파벳 소문자로 이루어진 단어 S(S >= 100)
a ~ z를 순서대로 나열하는데, 알파벳이 S에 포함되어 있으면 인덱스 출력 아니면 1을 출력 (인덱스는 0부터 시작)
2. 설계/검증
함수화
for(알파벳 순회){
해당 알파벳의 초기값은 -1
for(문자열 순회){
만약 해당 알파벳과 같으면 문자열의 인덱스를 반환
}
}
복잡도
시간 복잡도 | 최악의 경우 | 공간 복잡도 |
O(N) | O(1) |
3. 정상 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String S = scan.nextLine();
// S 길이 유효성 검사
if (!(S.length() <= 100)) {
System.out.println("단어 S의 길이는 100을 넘지 X");
return;
}
// a부터 z까지의 알파벳에 대해 처리
for (char ch = 'a'; ch <= 'z'; ch++) {
// 기본값을 -1로 설정
int position = -1;
for (int i = 0; i < S.length(); i++) {
if (S.charAt(i) == ch) {
position = i;
break;
}
}
System.out.print(position + " ");
}
scan.close();
}
}
'◖코딩 테스트◗▬▬▬▬▬▬▬▬▬ > 백준' 카테고리의 다른 글
[백준] 1152 단어의 개수 (설명/코드/정답) (0) | 2024.06.18 |
---|---|
[백준] 2675 문자열 반복 (설명/코드/정답) (0) | 2024.06.17 |
[백준] 11720 숫자의 합 (설명/코드/정답) (0) | 2024.06.12 |
[백준] 11654 아스키 코드(설명/코드/정답) (0) | 2024.06.10 |
[백준] 9086 문자열 (설명/코드/정답) (0) | 2024.06.09 |