반응형

1. 문제

- [백준 C#] 10809번 알파벳 찾기 (C#)  (https://www.acmicpc.net/problem/10809)

 

 

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

 

 

2. 문제 포인트

  • 문자열을 입력 받는다.
  • 26개짜리 리스트를 생성한다 (초기 값은 모두 -1)
  • 입력 받은 문자열을 하나씩 잘라 카운트 값을 리스트의 해당 인덱스에 입력한다

 

 

반응형

 

 

3. 전체 코드

using System;
using System.Linq;

namespace B5_10809번
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string str = Console.ReadLine();

            // 26개의 값을 모두 '-1'로 초기화
            int[] result = Enumerable.Repeat(-1, 26).ToArray();
            int num = 0;
            int cnt = 0;

            // 글자를 한글자씩 계산한다
            foreach (char a in str)
            {
                num = Convert.ToInt32(a);
                
                // 글자가 중복일 경우 첫번째 문자 기준으로 숫자 출력
                if (result[num-97] == -1)
                {
                    result[num-97] = cnt;
                }
                cnt += 1;
            }

            Console.WriteLine(String.Join(" ", result));
        }
    }
}

// 10809번 알파벳 찾기
// https://www.acmicpc.net/problem/10809
반응형

+ Recent posts