본문 바로가기
C#/C# : Baekjoon

[백준] C# : 알파벳 찾기 (10809번)

by TODAYCODE 2021. 8. 5.
반응형

백준 단계별로 풀어보기 7단계 3번문제

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

문제의 핵심

1. 아스키 코드를 이해하고 활용할 수 있는가?

 


 

문제를 풀기위해서는 아스키 코드를 알고 있어야한다.

알파벳 소문자의 경우는 97 ~ 122번까지이다.

대문자는 65 ~ 90

숫자 0~ 9까지는 48 ~ 57이다.

 

해당 숫자를 입력해서 char로 변환해주면 알파벳을 찾을 수 있다.

for문 97부터 122까지 돌리면서 포함하고 있는지를 파악하면 될 것이다.

 

 

 

조금 더 쉽고 간단하게 푸는 방법도 있다.

이 방법은 사실 아스키코드를 정확히 몰라도 풀 수 있다.

for문의 조건식들을 입력할 때 int형태가 아니라 char형태로 'a'부터 'z'까지로 선언해주면 된다.

그럼 자동으로 char형태를 순환하게된다.

이 풀이법은 스스로 해보도록 하자.

 

 

정답 코드

using System;

namespace 문자열_알파벳찾기
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            // 소문자 아스키코드 : 97~122번

            for (int i = 97; i < 123; i++)
            {
                if (s.Contains(Convert.ToChar(i)))
                {
                    Console.Write(s.IndexOf(Convert.ToChar(i)));
                    Console.Write(" ");
                }
                else
                {
                    Console.Write("-1 ");
                }
            }
        }
    }
}
반응형

댓글