https://www.acmicpc.net/problem/10809
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
난이도 : 브론즈 2
태그 : 구현, 문자열
설명
26개의 배열을 선언하고 -1로 초기화한뒤,
A ~ Z, 각 문자가 처음으로 나오는 순간이 몇 번째인지 저장합니다.
첫 번째로 나오는 순간이므로,
-1인지 확인 후 업데이트 하는게 주의점입니다.
소스코드
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
scanf("%s", str);
int result[26] = {};
for (int i = 0; i < 26; i++) {
result[i] = -1;
}
for (int i = 0; i < strlen(str); i++) {
int idx = (int) str[i] - 'a';
if(result[idx] == -1) result[idx] = i;
}
for (int i = 0; i < 26; i++) {
printf("%d ", result[i]);
}
}
'코딩테스트 > C | C++' 카테고리의 다른 글
[백준 10818번] [C언어] 최소, 최대 (0) | 2023.05.26 |
---|---|
[백준 15727번] [C언어] 조별과제를 하려는데 조장이 사라졌다 (0) | 2023.04.26 |
[백준 10950번] [C++] A + B - 3 (0) | 2023.04.17 |
[백준 2558번] [C++] A + B - 2 (0) | 2023.04.17 |
[백준 1001번] [C++] A - B (0) | 2023.04.17 |