[BOJ] 10809 "알파벳 찾기" 문제 풀이 & 소스 코드 with C/C++

    반응형

    #INFO

    난이도 : BRONZE2

    알고리즘 유형 : 자료구조

    문제 출처 : https://www.acmicpc.net/problem/10809

     


    #SOLVE

    알파벳의 위치를 저장할 alpha[26] 배열을 선언해 주고, fill_n 메서드로 모든 값을 -1로 초기화한다.

    int alpha[26];
    fill_n(alpha ,26 ,-1);

    문자열을 입력받은 뒤 문자열의 길이만큼 탐색하여 만약 해당 알파벳의 alpha 배열 값이 -1 이라면 ( -1이 아니면 처음 등장한 위치가 아니라는 뜻이니) 현제 인덱스 값을 alpha 배열에 초기화 시켜준다.

    for (int i = 0; i < str.length(); i++) {
    	if (alpha[str[i] - 97] == -1) {
    		alpha[str[i] - 97] = i;
    	}
    }

    #CODE

    #include <iostream>
    #include <string>
    using namespace std;
    
    int alpha[26];
    
    int main()
    {
    	fill_n(alpha ,26 ,-1);
    	string str;
    	cin >> str;
    	
    	for (int i = 0; i < str.length(); i++) {
    		if (alpha[str[i] - 97] == -1) {
    			alpha[str[i] - 97] = i;
    		}
    	}
    	
    	for (int i = 0; i < 26; i++) {
    		cout << alpha[i] << " ";
    	}
    	
    	return 0;
    }


    반응형

    댓글

    Designed by JB FACTORY