2024. 10. 25. 16:30ㆍIT/BaekJoon
문제 링크
https://www.acmicpc.net/problem/29730
문제
취업 준비생 임스는 취업 준비를 하면서 그날그날 무슨 공부를 하였는지 기록하기 위해 데일리 인증이라는 스터디를 시작했다. 임스는 매일 무슨 공부를 하였는지 적으면서 몇 개의 규칙을 정했다.
- 매일 꾸준히 백준 문제를 푼다.
- 백준 문제를 하루 1문제 이상 풀었고, 그 외의 다른 공부는 0개 이상 진행하였다. 다른 공부들은 영어 대소문자, 숫자, 공백으로만 이루어진 최대 길이 100의 문자열이다.
- 인증 기록으로는 백준 문제 링크를 제일 마지막에 작성하고, 그 외 학습 기록은 문자열 길이가 짧은 순으로 정렬해서 작성한다. 만약 문자열의 길이가 같다면, 사전 순으로 정렬한다.
- 문자는 아스키코드 기준으로 비교한다.
- 백준 문제 링크는 boj.kr/문제 번호 형식이다. 문제 번호가 작은 순서대로 정렬해서 작성한다. 문제 번호는 1 이상 30000 이하이다.
임스가 하루 동안 공부한 기록들이 정렬되지 않은 채로 주어졌을 때, 주어진 규칙에 맞게 정렬 후 출력한다.
입력
첫 번째 줄에는 임스가 하루동안 공부한 기록의 개수 N이 주어진다. (1≤N≤1000)
다음 N개의 줄에 임스가 하루동안 공부한 기록들이 한 줄에 하나씩 주어진다.
학습 기록은 공백으로 시작하거나 끝나지 않는다. 같은 공부 기록이 여러 번 주어질 수도 있다.
출력
임스가 공부한 기록들을 주어진 규칙에 맞게 정렬 후 한 줄에 하나씩 출력한다.
통과한 답안
namespace _29730
{
internal class Program
{
static void Main(string[] args)
{
int N = int.Parse(Console.ReadLine());
List<string> study = new List<string>();
List<string> coding = new List<string>();
for (int i = 0; i < N; i++)
{
string input = Console.ReadLine();
if (input.Contains("boj.kr"))
{
coding.Add(input);
}
else
{
study.Add(input);
}
}
var sortedStudy = study.OrderBy(x => x.Length)
.ThenBy(x => x).ToList();
var sortedCoding = coding.OrderBy(x => x.Length)
.ThenBy(x => x).ToList();
foreach (string str in sortedStudy)
{
Console.WriteLine(str);
}
foreach (string str in sortedCoding)
{
Console.WriteLine(str);
}
}
}
}
N개의 문자열이 주어졌을 때, 해당 문자열들을 특정 조건에 맞게 정렬시키는 문제이다.
'boj.kr/문제번호'의 형식으로 주어지는 문자열은 백준 문제이고 그 외의 문자열은 다른 공부이다.
그 외의 문자열은 문자열의 길이가 첫 번째 기준이고 같은 길이라면 사전 순으로 정렬하여 출력하고
그 다음에 백준 문제는 문제 번호가 작은 순으로 정렬하여 출력하면 된다.
LINQ를 이용하여 정렬된 리스트를 만들었는데,
OrderBy(x => x.Length)를 통해서 각 문자열의 길이 순으로 정렬한 뒤에
ThenBy(x => x)를 통해서 사전 순으로 정렬하게 구현하였다.
백준 문제의 경우에도 같은 방법을 사용하여 문제 번호가 작은 순으로 정렬할 수 있다.
'IT > BaekJoon' 카테고리의 다른 글
[BAEKJOON] 백준 16316: Baby Bites (C#) (1) | 2024.10.29 |
---|---|
[BAEKJOON] 백준 15751: Teleportation (C#) (1) | 2024.10.29 |
[BAEKJOON] 백준 1755: 숫자놀이 (C#) (0) | 2024.10.24 |
[BAEKJOON] 백준 14843: 정보갓 영훈이 (C#) (0) | 2024.10.24 |
[BAEKJOON] 백준 15820: 맞았는데 왜 틀리죠? (C#) (2) | 2024.10.22 |