문제 1009 · 바이트 V
커밋 메시지 검사
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
우리 팀의 커밋 메시지는 `종류: 요약` 꼴이어야 한다. 자세한 규칙은 다음과 같다. 1. 종류는 feat, fix, docs, refactor, test 중 하나이고 소문자로 쓴다. 2. 종류 바로 뒤에 콜론(:)이 오고, 그 뒤에 공백이 정확히 한 칸 온다. 3. 그 뒤가 요약이다. 요약은 1자 이상 50자 이하이고, 공백으로 시작하지 않으며, 마침표(.)로 끝나지 않는다. 메시지에서 처음 나오는 콜론 앞부분을 종류로 본다. 콜론이 없으면 규칙을 어긴 메시지다. N개의 커밋 메시지가 주어질 때 규칙을 어긴 메시지를 모두 찾아라.
입력
첫째 줄에 메시지 수 N (1 ≤ N ≤ 1,000) 이 주어진다. 다음 N개 줄에 메시지가 한 줄에 하나씩 주어진다. 메시지는 길이 1 이상 100 이하이고, 영문·숫자·기호·공백(ASCII)으로만 이루어져 있으며, 공백으로 시작하거나 끝나지 않는다.
출력
첫째 줄에 규칙을 어긴 메시지 수 K 를 출력한다. K 가 1 이상이면 둘째 줄에 어긴 메시지의 번호(1부터)를 오름차순으로 공백을 사이에 두고 출력한다.
예제 입력 1
4 feat: add login page Fix: typo docs:update readme fix: null check.
예제 출력 1
3 2 3 4
예제 입력 2
2 refactor: split parser test: add cases for retry
예제 출력 2
0
힌트 펼치기
- 입력을 공백 기준으로 자르면 요약 안의 공백 정보가 사라진다. 줄 단위로 읽자.
- 처음 나오는 콜론의 위치 i 를 찾으면, 종류는 i 앞, 공백은 i+1 번째 글자, 요약은 i+2 번째부터다.
관련 서재 장
알고리즘 분류
문자열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |