using System;
namespace Baekjoon
{
internal class Program
{
static void Main(string[] args)
{
//입력값 받아오는 동시에 모두 대문자로 바꿈
string input = Console.ReadLine().ToUpper();
//어느 알파벳이 제일 많이 나왔는지 확인할 용도의 변수
int max = 0;
//결과값 담을 변수
string result = "";
//아스키코드 A~Z(65~90)를 이용
int[] asciiBox = new int[91];
//중복글자 나올때마다 asciiBox배열에 숫자 1씩 더함
for (int i = 0; i < input.Length; i++)
{
//만약input[i]가 A라면 asciiBox[A]++이 되는데
//여기서 A는 자동으로 숫자로 바뀌어 asciiBox[65]++이 된다
//그래서 굳이 input[i]를 (int)로 강제형변환 해줄 필요가 없음
asciiBox[input[i]]++;
}
//char형인경우 i로 쓰는 것이 가능함 이때 자동으로 아스키코드로 바뀜
for (int i = 'A'; i <= 'Z'; i++)
{
//만약 asciiBox[i](특정 알파벳)이 max보다 크다면 실행
if (asciiBox[i] > max)
{
//max에 제일 많이 나온 특정 알파벳의 개수를 넣음
max = asciiBox[i];
//결과값에 i를 (char)로 강제형변환하여 알파벳으로 바꾼 뒤 저장함
//이후 본인은 result를 string형으로 만들었으므로 + ""를 해서 string형으로 바꿔줌
result = (char)i + "";
}
//만약 현재까지 나온 알파벳의 최대 개수와 현재확인중인 알파벳의 개수가 같을 때 실행
else if (max == asciiBox[i])
{
//결과값을 ?로 저장
result = "?";
}
}
//결과 출력
Console.WriteLine(result);
}
}
}
출처 [C#]백준 1157번 문제 풀이 :: 공부하는개미 (tistory.com)
[C#]백준 1157번 문제 풀이
# 문제 출제 사이트 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단
antstudy.tistory.com
for문의 i로 char형을 쓸 수 있는지 처음 알게되었다
'백준' 카테고리의 다른 글
백준 1316번 c# (0) | 2024.01.17 |
---|---|
백준 2941번 c# (0) | 2024.01.17 |
백준 10988번 c# (0) | 2024.01.16 |
백준 2444번 c# (0) | 2024.01.15 |
백준 3003번 c# (0) | 2024.01.15 |