카멜레온 도전은 분명히 나쁜 일 입니다. 너무 나쁜 카멜레온은 아름다운 생물입니다. 변화를위한 시간!
우리 모두 알다시피, 많은 카멜레온은 피부색을 바꿔 주변 환경과 조화를 이룰 수있는 놀라운 능력을 가지고 있습니다. 이 도전의 목표이기도합니다.
도전
9 픽셀의 정사각형을 상상해보십시오. 8 개의 픽셀이 주변 환경입니다. 중앙에는 카멜레온이 있습니다.
이처럼 :
카멜레온은 자연스럽게 주변 환경과 조화를 이루려고 노력합니다. 색상을 주변 픽셀의 평균 색상으로 변경하면됩니다. 따라서이 경우 카멜레온의 색상이로 변경됩니다
객관적인
주변 픽셀의 색상이 주어지면 카멜레온의 색상을 출력하십시오.
카멜레온의 색상은 픽셀 ÷ 8의 모든 빨강, 녹색 및 파랑의 총계로 정의됩니다.
입력
다음과 같이 왼쪽 상단에서 시작하여 시계 방향으로 계속되는 8 개의 주변 픽셀에 대한 색상 값 배열입니다.
[[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>]]
8 개의 10 진수 0-255로 구성된 경우 다른 형식으로 입력을 수신하도록 선택할 수 있습니다.
다른 형식의 입력을받는 경우 숫자는 길이가 일정해야하며 숫자 사이에 숫자가 아닌 구분 기호가 있어야합니다. 트리플은 9 자리 숫자로 0이 채워지지 않는 한 분리 문자를 가져야합니다. (예 : 044200255044200255044200255044200255044200255044200255044200255044200255
유효 하지만 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255
및 44?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255
이지만 유효 4420025544200255442002554420025544200255442002554420025544200255
하지 않습니다.)
산출
중앙 픽셀의 색상을 포함하는 배열 / 문자열 등 (10 진수)은 다음과 같습니다.
[<red>,<green>,<blue>]
배열 이외의 것을 출력하는 경우 : 숫자는 길이가 일정해야하거나 숫자 사이에 숫자가 아닌 구분자가 있어야합니다. (예 : 044200255
유효 44 200 255
하지만 유효 44200255
하지 않습니다.)
숫자는 소수점을 포함 할 수 없으므로 44.0 200 255.0
유효하지 않습니다.
반올림
출력은 가장 가까운 정수로 반올림되어야합니다. (반쪽는 반올림해야합니다.) 예, 모두 빨간의 합이 경우 1620 , 당신은 출력해야한다 203
,하지 202
나 202.5
.
예
사진은 예시 용입니다. 가운데 픽셀이 출력이고 주변 픽셀이 입력입니다.
입력:
[[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200]]
산출:
[200,200,200]
입력:
[[0,0,0],[255,255,255],[0,0,0],[255,255,255],[255,255,255],[0,0,0],[255,255,255],[0,0,0]]
산출:
[128,128,128]
입력:
[[0,200,200],[200,0,200],[200,200,0],[60,200,0],[200,0,200],[0,200,220],[2,200,0],[0,0,0]]
산출:
[83,125,103]
입력:
[[0,56,58],[65,0,200],[33,200,0],[60,33,0],[98,0,200],[0,28,220],[2,200,0],[99,0,5]]
산출:
[45,65,85]
답변
MATL, 8 4 바이트
YmYo
비커 덕분에 4 바이트가 절약되었습니다!
설명:
Ym "Get the average of each column
Yo "And round up
답변
파이썬, 38 바이트
lambda l:[sum(r)+4>>3for r in zip(*l)]
합계에 4를 더한 다음 비트 시프트를 통해 8을 바닥으로 나눔으로써 평균을 반올림하여 반올림하여 가장 가까운 정수로 반올림합니다 >>3
.
답변
젤리 , 5 바이트
S+4:8
테스트 스위트 . (모든 테스트 케이스를 한 번에 확인하도록 약간 수정했습니다.)
S+4:8
S sum (vectorized)
+4 add 4
:8 floor division by 8
답변
C, 151 (123) 103 91
RGBRGB 순서로 프로그램에 24 개의 매개 변수가 전달되어야하며 개행없이 삼중 항 RGB를 출력합니다.
i,t;main(c,v)char**v;{for(i=0;t=4,i++<3;printf("%d ",t/8))for(c=i;c<24;c+=3)t+=atoi(v[c]);}
답변
Pyth , 8 바이트
m.R.Od0C
테스트 스위트 .
m.R.Od0C input: Q
m.R.Od0CQ implicit arguments
Q input
C transpose
m d for each:
.O take average
.R 0 round off
답변
답변
J, 11 바이트
0.5<.@++/%#
각 행이 RGB 값인 8×3 배열로 입력을받습니다.
설명
0.5<.@++/%# Input: a
# Count the number of rows
+/ Sum along the columns
% Divide each sum by the count to get the averages
0.5 + Add 0.5 to each average
<.@ Floor each value and return