백준문제풀이 5단계 문자열6 10809번 알파벳 찾기 (C#)

2024. 5. 21. 20:00백준 문제풀이/5단계 문자열

 

문자열 하나를 받고

각 알파벳 총 26개를 비교해서 출력하는데,

문자열 안에 포함되어있는 단어일경우 처음 등장하는 위치를,

포함되어 있지 않을경우는 -1을 출력한다.

 

만약 문자열이 bac라면

1,0,2,-1,-1,-1,-1,-1,...이 될것이다.

 

using System;
class BackJoon
{
    static void Main(string[] args)
    {
        string S = Console.ReadLine();
        string N = "abcdefghijklmnopqrstuvwxyz";
        int[] N2 = new int[26];
        for (int i = 0; i < N2.Length; i++)
        {
            N2[i] = -1;
        }
        for (int i = 0; i < S.Length; i++)
        {
            for (int j = 0; j < N.Length; j++)
            {
                if (N[j] == S[i])
                {
                    N2[j] = S.IndexOf(N[j]);
                }
            }
        }
        Console.WriteLine(string.Join(" ", N2));
    }
}

 

아스키 코드르 풀어도 되고...

나처럼 알파벳을 하나씩 담은 문자열을 만들어도 된다...

 

먼저 N2배열에 -1을 채우고,

S(입력받은 문자열)의 길이만큼 for문을 돌린다.

또 그 안에서 N(알파벳 문자열)의 길이만큼 for문을 돌려서

N의원소와 S의 원소가 같으면 그 index를 N2에 넣는다,

 

마지막으로 String.Join으로 공백과 출력해주면 끝.