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
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[BOJ/백준] 1157번 단어 공부 C++ 문제 풀이 (0) | 2020.10.26 |
---|---|
[BOJ/백준] 2675번 문자열 반복 C++ 문제 풀이 (0) | 2020.10.26 |
[BOJ/백준] 11720번 숫자의 합 C++ 문제 풀이 (0) | 2020.09.22 |
[BOJ/백준] 11654번 아스키 코드 C++ 문제 풀이 (0) | 2020.09.22 |
[BOJ/백준] 1065번 한수 C++ 문제 풀이 (0) | 2020.09.22 |