Baekjoon/단계별로 풀어보기

[BOJ/백준] 10809번 알파벳 찾기 C++ 문제 풀이

728x90

단계별로 풀어보기 - 문자열 - [3단계] 10809번

문제

문제 링크 : www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

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

www.acmicpc.net

입력 복사 : 

baekjoon

 

풀이

각 알파벳마다 입력 받은 문자열에서 알파벳을 찾고 그 위치를 출력한다.

알파벳이 발견된 첫번째 위치만을 출력하면 되기 때문에,문자열에서 해당 알파벳을 찾은 후에는 break로 문자열을 탐색하는 반복문을 빠져 나온다.해당 알파벳이 문자열에 없는 경우를 위해 알파벳 발견 시 증가시킬 n 변수를 생성하였다.n이 0일 때, -1을 출력하여 해당 알파벳이 없음을 알린다.

 

CODE

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

int main() {
	string str;
	getline(cin, str, '\n');
	int len, n = 0;
	len = str.length();

	for (int i = 'a'; i <= 'z'; i++) {
		for (int j = 0; j < len; j++) {
			if (str.at(j) == i) {
				printf("%d ", j);
				n++;
				break;
			}
		}
		if (n == 0) {
			printf("-1 ");
		}
		n = 0;
	}
}

 

결과

728x90