본문 바로가기
Development/Baekjoon

[C#] 10809번: 알파벳 찾기

by Mobics 2025. 8. 8.

목차


    백준 단계별로 풀어보기

    25.08.08

    5단계: 문자열


    10809번: 알파벳 찾기

    문제 링크 : https://www.acmicpc.net/problem/10809

     

    문제를 풀기 위해 필요한 것

    - 문자열을 원하는 위치에서 자르는 방법과 자른 문자를 정수로 변환하는 방법을 혼용하면서 배열을 사용하여 아스키 코드와 비교

     

    ▶ 처음에 이중 반복문을 반대로 작성해서 꽤나 애먹었다. 올바른 방법을 찾기까지 생각보다 시간이 걸렸다.

     

    >> 새롭게 추가해본 문법

    • ToString().TrimEnd() : 현재 문자열에서 뒤에 오는 공백 문자를 모두 제거한다.
     

    String.TrimEnd 메서드 (System)

    현재 문자열에서 후행 공백 문자를 모두 제거합니다.

    learn.microsoft.com

     

    ※ 아스키 코드 표

    출처 : https://sheepone.tistory.com/47

     

    정답 코드

    using System.Text;
    
    class Backjoon
    {
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();
            string word = Console.ReadLine();
            int askii = 97; // ASCII 'a' == 97
            int[] arr = new int[26];
            for (int i = 0; i < 26; i++)
            {
                arr[i] = askii + i;
            }
    
            for (int i = 0; i < 26; i++)
            {
                for (int j = 0; j < word.Length; j++)
                {
                    char alphabet = Convert.ToChar(word.Substring(j, 1));
                    int number = Convert.ToInt32(alphabet);
    
                    if (arr[i] == number)
                    {
                        sb.Append(j + " ");
                        break;
                    }
                    else if (j == word.Length - 1 && arr[i] != number)
                    {
                        sb.Append("-1 ");
                    }
                }
            }
            Console.Write(sb.ToString().TrimEnd());
        }
    }

    'Development > Baekjoon' 카테고리의 다른 글

    [C#] 1152번: 단어의 개수  (2) 2025.08.09
    [C#] 2675번: 문자열 반복  (0) 2025.08.08
    [C#] 11720번: 숫자의 합  (3) 2025.08.07
    [C#] 11654번: 아스키 코드  (0) 2025.08.06
    [C#] 9086번: 문자열  (1) 2025.08.06