아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

다채로운 문제

면접 대비

시간 제한1초메모리 제한512 MB

요약
처음 16개 RGB 색을 기준 집합으로 두고, 이후의 각 색마다 유클리드 거리가 가장 가까운 기준 색을 찾아 "maps to"와 함께 출력한다.
난이도

쉬움10점 중 2점

유형
구현, 완전 탐색, 기하, 배열
정답자
아직 제출이 없습니다

문제

컴퓨터 그래픽스에서는 이산적인 색 집합을 더 작은 이산적인 색 집합으로 매핑해야 하는 경우가 자주 있다. 이 프로그램의 목표는 RGB 색 공간에서 그러한 매핑을 수행하는 것이다. 프로그램의 입력은 16개의 RGB 색 값으로 이루어진 대상 집합과, 그 대상 집합에서 "가장 가까운" 색으로 매핑될 RGB 색 값들의 모음이다.

입력은 RGB 색 값의 목록이며, 한 줄에 색 하나씩 있고, 각 색은 빨강, 초록, 파랑 성분을 그 순서대로 0부터 255까지의 정수로 나타낸다(0은 해당 성분이 전혀 없음을, 255는 해당 성분이 최대 강도임을 의미한다). 처음 16개의 색이 입력에 있는 나머지 모든 색을 매핑할 대상 집합을 이룬다.

주어진 색에 대해 대상 집합에서 "가장 가까운" 색은 원래 색으로부터 유클리드 거리가 가장 작은 색이다. 즉 rgbrgb가 매핑할 색이고 {R1G1B1,…,R16G16B16}\{R_1G_1B_1, \dots, R_{16}G_{16}B_{16}\}이 대상 색의 집합이라면, 가장 가까운 색은 거리 식 d=(Ri−r)2+(Gi−g)2+(Bi−b)2d = \sqrt{(R_i - r)^2 + (G_i - g)^2 + (B_i - b)^2}을 최소화하는 색이다. 여기서 ii는 1부터 16까지의 정수이다.

프로그램은 대상 집합으로 매핑할 색마다 한 줄을 출력해야 한다. 아래 샘플 출력에 나온 것처럼, 그 줄에는 매핑할 색, 그다음에 "maps to"라는 말, 그다음에 원래 색이 매핑된 대상 집합의 색이 있어야 한다. 모든 색은 위에서 설명한 대로 빨강, 초록, 파랑 순서로 나타낸다.

예제1

  1. 예제 1

    입력
    0 0 0
    255 255 255
    0 0 1
    1 1 1
    128 0 0
    0 128 0
    128 128 0
    0 0 128
    126 168 9
    35 86 34
    133 41 193
    128 0 128
    0 128 128
    128 128 128
    255 0 0
    0 1 0
    0 0 0
    255 255 255
    253 254 255
    77 79 134
    81 218 0
    
    예상 출력
      0   0   0 maps to   0   0   0
    255 255 255 maps to 255 255 255
    253 254 255 maps to 255 255 255
     77  79 134 maps to 128 128 128
     81 218   0 maps to 126 168   9