반응형
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
반응형
'알고리즘 > C#' 카테고리의 다른 글
[백준 C#] 1316번 그룹 단어 체커 (C#) (1) | 2022.09.24 |
---|---|
[백준 C#] 2941번 크로아티아 알파벳 (C#) (1) | 2022.09.23 |
[백준 C#] 2908번 상수 (C#) (0) | 2022.09.22 |
[백준 C#] 5622번 다이얼 (C#) (0) | 2022.09.22 |
[백준 C#] 11654번 아스키 코드 (C#) (0) | 2022.09.21 |