문제 3705 · 비트 I
학원 점수 열 정제
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
학원의 데이터 담당자는 여러 반에서 모은 연습 평가 점수를 하나의 보고서로 합치고 있다. 전달받은 자료의 점수 열에는 정상적인 점수뿐 아니라 아직 입력되지 않은 값과 허용 범위를 벗어난 값도 섞여 있다. 보고서에 사용할 점수는 0 이상 100 이하의 정수여야 하므로, 합계를 계산하기 전에 정해진 규칙으로 각 행을 정제해야 한다. 원본 값이 -1이면 점수가 입력되지 않았다는 뜻이다. 이 행은 보고서에서 제외하며, 점수 합계에도 더하지 않는다. -1은 특별한 표시이므로 다른 음수와 구별해야 한다. 원본 값이 -1이 아닌 음수라면 해당 행을 유지하되 점수를 0으로 바꾼다. 원본 값이 100보다 크다면 해당 행을 유지하되 점수를 100으로 바꾼다. 원본 값이 0 이상 100 이하라면 그 값을 그대로 사용한다. 담당자는 정제 결과를 확인하기 위해 세 가지 수치를 기록한다. 첫 번째는 보고서에 유지한 행의 수이다. 두 번째는 유지한 행에 들어 있는 정제 후 점수의 합계이다. 세 번째는 유지한 행 중 원본 값과 정제 후 값이 달라진 행의 수이다. 입력되지 않아 제외한 행은 세 번째 수치에도 포함하지 않는다. 원본부터 0이나 100이었던 행도 값이 바뀌지 않았으므로 변경한 행에 포함하지 않는다. 각 입력 행은 서로 독립된 평가 기록이다. 같은 원본 값이 여러 번 나오더라도 각각 별개의 행으로 처리하며, 중복이라는 이유로 삭제하지 않는다. 입력 순서는 정제 규칙이나 합계에 영향을 주지 않는다. 모든 행이 제외되면 유지한 행의 수, 점수 합계, 변경한 행의 수는 모두 0이다. 원본 점수 목록을 받아 위 규칙을 적용한 세 수치를 계산하는 프로그램을 작성한다.
입력
첫째 줄에 원본 행의 수 N이 주어진다. N은 1 이상 1,000 이하의 정수이다. 둘째 줄에 N개의 원본 값이 공백으로 구분되어 주어진다. 각 원본 값은 -100 이상 200 이하의 정수이다. -1은 점수가 입력되지 않았음을 나타낸다.
출력
유지한 행의 수, 정제 후 점수의 합계, 유지한 행 중 값이 변경된 행의 수를 이 순서대로 공백으로 구분하여 한 줄에 출력한다. 유지한 행이 없다면 0 0 0을 출력한다.
예제 입력 1
7 -1 -8 0 46 100 125 -1
예제 출력 1
5 246 2
예제 입력 2
4 -1 -1 -1 -1
예제 출력 2
0 0 0
예제 입력 3
5 -2 -1 101 100 0
예제 출력 3
4 200 2
힌트 펼치기
- 먼저 -1인 행을 제외한 뒤 나머지 값의 범위를 검사한다.
알고리즘 분류
구현데이터 정제풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |