[BOJ][C#] 18870 좌표 압축

LimJaeJun·2023년 9월 9일
0

PS/BOJ

목록 보기
25/108

📕 문제

📌 링크

📗 접근 방식

  1. 입력을 받아 정수 배열로 저장
  2. 배열을 정렬하고 중복된 값을 제거
  3. 각 값에 대해 순서(압축된 값)를 기록하는 Dictionary를 생성
  4. 입력된 좌표를 압축된 값으로 변환하여 출력

📘 코드

using System;
using System.Collections.Generic;

namespace BOJ
{
    class No_18870
    {
        static void Main()
        {
            int n = int.Parse(Console.ReadLine());
            int[] inputs = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
            int[] sortedArray = new List<int>(inputs).ToArray();
            Array.Sort(sortedArray);
            var dict = new Dictionary<int, int>();
            int index = 0;
            foreach(var value in sortedArray)
            {
                if(!dict.ContainsKey(value))
                {
                    dict[value] = index;
                    index++;
                }
            }
            for(int i = 0; i < n; i++)
                Console.Write($"{dict[inputs[i]]} ");
        }
    }
}

📙 오답노트

📒 알고리즘 분류

  • 정렬
  • 값 / 좌표 압축
profile
Dreams Come True

0개의 댓글

관련 채용 정보