알고리즘 풀이

[C#] 백준 33846번 문제풀이

bimtaeur30 2026. 3. 20. 09:55

문제번호: 33846

문제명: 삽입 정렬을 해볼까

문제링크: https://www.acmicpc.net/problem/33846

문제내용과 예제 입/출력은 위 문제 링크에서 확인해 주시기 바랍니다

 

오늘은 부분정렬 문제를 풀었습니다. c#에 부분정렬은 따로 지원하고 있지 않아 Sort와 RemoveRange를 사용하여 부분정렬을 구현하였습니다.
입력으로 주어진 숫자배열을 깊은복사로 다른 배열에 붙여 넣은 후 복사한 배열을 t까지 삭제하고 Sort로 정렬시켰습니다.
이후 정렬된 배열을 모두 출력하고 나머지 부분은 기존 입력으로 주어진 배열을 출력하였습니다.
다음은 정답코드입니다.

static void Main()
{
    using var sr = new StreamReader(Console.OpenStandardInput());
    using var sw = new StreamWriter(Console.OpenStandardOutput());

    int[] nt = Array.ConvertAll(sr.ReadLine().Split(), int.Parse);
    List<int> array = Array.ConvertAll(sr.ReadLine().Split(), int.Parse).ToList();
    int n = nt[0];
    int t = nt[1];

    List<int> sortedArray = new List<int>(array);
    sortedArray.RemoveRange(t, sortedArray.Count - t);
    sortedArray.Sort();

    for (int i = 0; i < sortedArray.Count; i++)
        sw.Write(sortedArray[i] + " ");
    for (int i = sortedArray.Count; i < array.Count; i++)
        sw.Write(array[i] + " ");
}

 

'알고리즘 풀이' 카테고리의 다른 글

[C#] 백준 9465번 문제풀이  (0) 2026.03.22
[C#] 백준 15311번 문제풀이  (0) 2026.03.21
[C#] 백준 1697번 문제풀이  (0) 2026.03.18
[C#] 백준 2696번 문제풀이  (1) 2026.03.16
[C#] 백준 1655번 문제풀이  (0) 2026.03.15