Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/백준

[백준] 10809 알파벳 찾기 (설명/코드/정답)

_hyeri 2024. 6. 14. 00:07

 

문제 링크 : 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();
    }
}