반응형

1. 문제

- [백준 C#] 1157번 단어 공부 (C#)  (https://www.acmicpc.net/problem/1157)

 

 

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

 

 

2. 문제 포인트

  • 단어 입력 받기
  • 가장 많이 사용된 알파벳 출력
  • 최다 사용 알바벳이 두개인 경우 물음표 출력

 

 

반응형

 

 

3. 전체 코드

using System;
using System.Collections.Generic;
using System.Linq;

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

            List<int> cnt = new List<int>( Enumerable.Repeat<int>(0, 26).ToArray() );

            word = word.ToUpper();
            
            foreach (var a in word)
            {
                cnt[Convert.ToInt32(a)-65] += 1;
            }

            // LINQ 쿼리문을 이용해 최대값을 가진 요소의 개수를 구하기
            int linq_query = cnt.Where(n => n == cnt.Max()).Count() ;

            // 최댓값이 2개인 경우 필터
            if (linq_query>1)
            {
                Console.WriteLine("?");
            }
            else
            {
                // 아스키 코드를 이용해 해당 인덱스의 값 출력
                int co = 65 + cnt.IndexOf(cnt.Max());
                byte[] a = new byte[] { byte.Parse(co.ToString()) };
                Console.WriteLine(System.Text.Encoding.ASCII.GetString(a) );
            }
        }
    }
}

// 1157번 단어 공부
// https://www.acmicpc.net/problem/1157
반응형

+ Recent posts