C#

백준 C# 1181 문제 풀이

psb08 2024. 9. 16. 09:19
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