cyphen156

백준-문자열 10809 알파벳 찾기 본문

컴퓨터공학/알고리듬 풀이

백준-문자열 10809 알파벳 찾기

cyphen156 2024. 9. 24. 15:06

10809번: 알파벳 찾기 (acmicpc.net)

 

알파벳 표에서 입력받은 문자열에 해당 알파벳이 등장하는 첫 위치를 표시하는 프로그램

제약사항

  • 0 < S <= 100
  • S is Lowercase
  • if ch is not in S return -1

주의 사항

없다.

C 풀이

알파벳 찾기_10809.c

/**
* 백준 문자열 10809 알파벳 찾기
* 알파벳 표에서 입력받은 문자열에 해당 알파벳이 등장하는 첫 위치를 표시하는 프로그램
* 
* 
* 제한사항
*****************************************
* 0 < S <= 100                          *
* S is Lowercase                        *
* if ch is not in S return -1           *
*****************************************
*
*
*
* 주의
* 없다.
* 
* 풀이시간 10분
*/

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

int main(void)
{
    int alpha[26];
    int len = sizeof(alpha)/sizeof(alpha[0]);

    char str[101];
    // alpha 초기화
    for (int i = 0; i < len; ++i)
    {
        alpha[i] = -1;
    }

    scanf("%s", str);
    
    for (int i = 0; i < strlen(str); ++i)
    {
        int idx = str[i] - 'a';
        if (alpha[idx] == -1)
        {
            alpha[idx] = i;
        }
    }

    for (int i = 0; i < len; ++i)
    {
        printf("%d ", alpha[i]);
    }
    printf("\n");
	return 0;
}

 

C++ 풀이

알파벳 찾기_10809.cpp

/**
* 백준 문자열 10809 알파벳 찾기
* 알파벳 표에서 입력받은 문자열에 해당 알파벳이 등장하는 첫 위치를 표시하는 프로그램
* 
* 
* 제한사항
*****************************************
* 0 < S <= 100                          *
* S is Lowercase                        *
* if ch is not in S return -1           *
*****************************************
*
*
*
* 주의
* 없다.
* 
* 풀이시간 5분
*/

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    int* alpha = new int[26];
    memset(alpha, -1, sizeof(int) * 26); 
    string str;

    cin >> str;

    // 범위 기반 루프
    int i = 0;
    for (char ch: str)
    {
        int idx = ch - 'a';
        if (alpha[idx] == -1)
        {
            alpha[idx] = i;
        }
        ++i;
    }

    for (int i = 0; i < 26; ++i)
    {
        cout << alpha[i] << " ";
    }
    delete[] alpha;
    return 0;
}

 

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.

Workspace/알고리듬 풀이 at main · cyphen156/Workspace · GitHub

 

Workspace/알고리듬 풀이 at main · cyphen156/Workspace

Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.

github.com