solving/C, C++
[백준] 10809번 알파벳 찾기 (ASCII 코드로 소-대문자, 소문자-숫자 변환)
Seohyeong Lee
2022. 8. 27. 23:30
소스코드
#include <stdio.h>
#include <string.h>
int main (){
char a[100];
int index[26];
int i, b;
for (i=0; i<26; i++){
index[i] = -1;
}
scanf("%s", &a);
for(i=0; i<strlen(a); i++) {
b = a[i] - 97;
if (index[b] == -1) index[b] = i;
}
for (i=0; i<26; i++){
printf("%d ", index[i]);
}
}
해설
일단... ASCII CODE 기준으로, 알파벳 소문자를 숫자로 (0~25) 변환하려면 97을 빼면 된다. 소문자와 대문자를 변환하려면 32를 더하고 빼면 된다. 소문자가 더 크다.
참고로 int자료형을 char자료형으로 상호 변환할때는 48을 빼고 더하면 됨.
새싹문제치고 어려웠는데... 일단 문자열로 주어진 문자 받고, 26칸 배열을 만든 뒤 모두 -1로 설정. 문자에 해당하는 26칸 배열은 위치 (i) 로 값을 바꾸어서 풀었다.