1. 문제 및 예시 실행결과
항상 문제를 풀면 실전처럼 풀어야 하지 않을까 하고 생각한다. 그래서 오늘 문제은 문제를 풀때, 구글을 사용하지 않고 풀어보았다. 신기하게도 알파벳을 찾는 문제가 나왔다. 분명 이런 역할을 하는 함수는 존재한다. 그러나 나는 그것을 까먹었다. 내가 어떤 코드를 작성하고 있을 때는, 바로 구글을 켰겠지만, 나는 지금 코딩테스트를 본다고 생각하고 아는 문법으로 문제를 풀기 시작하였다. 물론 관련된 함수도 이번 글에서 소개할 것이다. 다음은 문제와 예시실행결과이다.
출처: https://www.acmicpc.net/problem/10809
이번 문제도 그렇게 어렵지는 않다. 알파벳도 소문자만 입력되기 때문에 생각보다 간단하게 풀었던것 같다.
2. 문제풀이
내가 선택한 방법은 간단하다. a부터 z까지의 수를 일일이 순차적으로 문자열과 비교해보고 일치하면 위치를 출력하고 위치하는 문자가 하나도 없으면 -1을 출력하는 방식이다. 물론 2중 for문으로 구현할 수 있다. 다음은 나의 코드이다.
#include <stdio.h>
#define SIZE 100
int main(void) {
char input[SIZE];
char alp = 'a';
scanf("%s", input);
for (int i = 0; i < 26; i++) {
int j = 0;
while (1) {
if (input[j] == alp) {
printf("%d ", j);
break;
}
if (input[j] == NULL) {
printf("%d ", -1);
break;
}
j++;
}
alp++;
}
return 0;
}
이미 아는 분들이 많겠지만, 문자열을 탐색해주는 함수는 이미 존재한다. 나는 그 함수의 자세한 문법을 모르기에 저렇게 푼 것이다. strchr() 이라는 함수인데 검색을 해 보길 바란다. 물론 정수값을 찾아주는 것이 아니기 때문에, 약간 손보는 방법이 필요하겠지만 유용한 함수이다.
3. 결어
오늘은 풀이가 짧다고 생각하는 분들이 많을 것 같다. 내일이 시험이어서 최대한 줄여서 쓴것은 사실이다...... 그래도 학점은 나름 중요하니....... 내일 부터는 아마 조금 정성스러운 풀이가 올라오지 않을까 싶다.
'programming > 알고리즘 풀이' 카테고리의 다른 글
[백준 알고리즘] 1157번 - 단어공부 (strupr() 함수) (0) | 2020.06.27 |
---|---|
[백준 알고리즘] 2675번 - 문자열 반복 (0) | 2020.06.27 |
[백준 알고리즘] 11720번 - 숫자의 합 (0) | 2020.06.24 |
[백준 알고리즘] 1065번 - 한수 (0) | 2020.06.21 |
[백준 알고리즘] 4673번 - 셀프 넘버 (qsort()의 사용) (0) | 2020.06.20 |