[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