728x90
문제 링크 : https://www.acmicpc.net/problem/1181
백준 실버 5 문제 입니다.
내 코드
var n = int.Parse(Console.ReadLine());
var word = new string[n];
for (int i = 0; i < n; i++)
{
word[i] = Console.ReadLine();
}
word = word.Distinct().OrderBy(w => w.Length).ThenBy(w => w).ToArray();
foreach (var ww in word)
{
Console.WriteLine(ww);
}
코드 풀이 해석 내용
var n = int.Parse(Console.ReadLine());
정수를 입력 받아 n에 저장합니다.
이 값은 이후에 입력받을 문자열의 개수를 나타냅니다.
var word = new string[n];
n 크기의 문자열 배열 word를 생성합니다.
이 배열은 이후에 입력받은 문자열을 저장하는 데 사용됩니다.
for (int i = 0; i < n; i++)
{
word[i] = Console.ReadLine();
}
for 루프를 사용하여 n번 반복합니다.
각 반복에서 입력받아 word 배열에 저장합니다.
word = word.Distinct().OrderBy(w => w.Length).ThenBy(w => w).ToArray();
Distinct() 메서드를 사용하여 배열 내의 중복된 문자열을 제거합니다.
OrderBy(w => w.Length)를 사용하여 문자열의 길이를 기준으로 오름차순으로 정렬합니다.
ThenBy(w => w)를 사용하여 길이가 같은 문자열들에 대해서는 알파벳 순서로 정렬합니다.
최종적으로 ToArray()를 호출하여 정렬된 결과를 다시 배열로 변환합니다.
foreach (var ww in word)
{
Console.WriteLine(ww);
}
foreach 루프를 사용하여 정렬된 문자열 배열 word의 각 요소를 출력합니다.
실행 결과
728x90
'C#' 카테고리의 다른 글
백준 C# 30802 문제 풀이 (0) | 2024.09.18 |
---|---|
백준 C# 4153 문제 풀이 (0) | 2024.09.17 |
백준 C# 2839 문제 풀이 (0) | 2024.09.16 |
백준 C# 8958 문제 풀이 (0) | 2024.09.15 |
백준 C# 2920 문제 풀이 (0) | 2024.09.15 |