본문으로 이동
코드패스 by Devin.KR

문제 4761 · 바이트 I

냉장 진열대의 기준 온도

댓글 0
인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms측정하지 않음0000.00%

문제

한 편의점은 냉장 진열대에 설치한 센서의 기록을 모아 점검 보고서를 만든다. 센서는 온도를 일정한 단위의 정수로 기록한다. 문이 열리거나 센서가 흔들리면 실제 보관 상태와 관계없는 값이 기록될 수 있으므로, 담당자는 정해진 절차에 따라 기록을 걸러 낸다. 먼저 각 기록이 장비의 유효 범위에 들어가는지 확인한다. 유효 범위의 최솟값은 L이고 최댓값은 R이다. 값이 L 이상 R 이하인 기록만 유효한 기록으로 남기며, 나머지는 범위 밖 기록으로 분류한다. 같은 값이 여러 번 기록되었더라도 각 기록은 별개로 취급한다. 다음으로 유효한 기록을 값의 오름차순으로 정렬하여 기준 온도를 정한다. 유효한 기록이 M개라면, 정렬한 결과에서 앞에서부터 ⌊(M+1)/2⌋번째 값을 기준 온도로 삼는다. 따라서 M이 짝수이면 가운데 두 값 중 작은 값이 기준 온도가 된다. 이때 순서는 1부터 센다. 기준 온도가 정해지면 유효한 기록 중 기준 온도와의 차이의 절댓값이 K보다 큰 기록을 이상치로 분류한다. 차이가 정확히 K인 기록은 이상치가 아니다. 이상치를 찾은 뒤 기준 온도를 다시 계산하거나 같은 절차를 반복하지 않는다. 범위 밖 기록은 이 단계에 참여하지 않으며 이상치 개수에도 포함하지 않는다. 보고서에는 기준 온도, 범위 밖 기록의 개수, 이상치의 개수를 차례로 적는다. 유효한 기록이 하나도 없으면 기준 온도를 정할 수 없으므로 숫자 대신 EMPTY를 적는다. 이 경우 이상치 개수는 0이다. 주어진 기록으로 보고서의 한 줄을 완성하는 프로그램을 작성한다.

입력

첫째 줄에 정수 N, L, R, K가 공백으로 주어진다. 1≤N≤50,000, -1,000≤L≤R≤1,000, 0≤K≤2,000이다.
둘째 줄에 N개의 정수 센서 값이 공백으로 주어진다. 각 값은 -1,000 이상 1,000 이하이다.

출력

기준 온도, 범위 밖 기록 개수, 이상치 개수를 공백으로 구분하여 한 줄에 출력한다. 유효한 기록이 없으면 첫 번째 항목으로 EMPTY를 출력한다.

예제 입력 1

7 0 10 2
-1 2 3 3 7 10 11

예제 출력 1

3 2 2

예제 입력 2

3 0 5 0
-2 8 9

예제 출력 2

EMPTY 3 0

예제 입력 3

4 -5 5 0
1 1 2 2

예제 출력 3

1 0 2
힌트 펼치기
  • 유효한 기록만 정렬한 뒤 기준 온도를 한 번 결정한다.

출처: Devin.KR 자체 제작

알고리즘 분류정렬구현

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

JavaScript 시간 제한 = 문제 시간 제한 × 1 + 0초. 문제별 예외는 아래 표에 반영됩니다.

Node.js 전체 API는 지원하지 않습니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      댓글 0

      로그인하면 댓글을 쓸 수 있습니다.

      댓글 접기·펼치기

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      JavaScript브라우저 JavaScript1000ms / 테스트측정하지 않음
      TypeScriptTypeScript 5.9.31000ms / 테스트측정하지 않음
      Python 3Pyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음
      CYoWASP Clang 222000ms / 테스트측정하지 않음
      C++YoWASP Clang 22 / libc++2000ms / 테스트측정하지 않음
      JavaOpenJDK javac + TeaVM (Java 21 문법)3000ms / 테스트측정하지 않음
      LuaWasmoon 1.16.0 / Lua 5.43000ms / 테스트측정하지 않음
      RubyRuby 3.4 / ruby.wasm 2.10.15000ms / 테스트측정하지 않음
      SchemeBiwaScheme 0.8.35000ms / 테스트측정하지 않음
      PrologSWI-Prolog / swipl-wasm 8.2.55000ms / 테스트측정하지 않음
      PerlPerl 5.28 / WebPerl 0.09-beta5000ms / 테스트측정하지 않음