코딩테스트 연습/Baekjoon

[Baekjoon] 10809번: 알파벳 찾기 (c++)

수기 2022. 3. 31. 19:31

https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

입력받은 값 input[i] - 'a'를 하면 입력 문자의 인덱스 (a는 0, b는 1.. z는 25) 가 나온다.
result[ input[i] - 'a' ] 가 -1이 아닐때는 이미 처음등장 위치를 기록한 알파벳이기 때문에,
result[ input[i] - 'a' ] 의 현재 값이 -1일때만 result[ input[i] - 'a' ] = i 를 넣어주면 된다.

 


코드

#include <iostream>
#include <string>
using namespace std;

//10809
int main()
{
    string input;
    int result[26];
    for(int i=0;i<26;i++){
        result[i] = -1;
    }
    
    cin>>input;
    
    for(int i=0;i<input.length();i++){
        if(result[input[i] - 'a']  == -1) result[  input[i] - 'a' ] =  i;
    }
    
    for(int i=0;i<26;i++) cout << result[i] <<" ";
    
    
    return 0;
}