문제 1009 · 입문 2
커밋 메시지 검사
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 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 번째부터다.
막히면
- 도구케이스 변환
- 장Python 문법과 작은 자동화 · 파이썬 문자열 다루기 - f-string 포매팅과 한글 인코딩
- 장예제로 배우는 Java 기본 · 자바 문자열 - String 불변성과 == equals 차이 StringBuilder 를 쓰는 기준
- 도구글자수 세기
- 장Linux 명령어 사전 · 리눅스 wc 명령어 사용법 - 줄 수·단어 수·바이트 수 세기 실전 예제
- 도구정규식 테스터
- 장타입·비동기·테스트 설계 · 파이썬 정규표현식 - re 모듈 사용법과 백트래킹 성능 함정
- 장Linux 명령어 사전 · 리눅스 grep 명령어 사용법 - 옵션 정리와 로그·코드 검색 실전 예제
- 장Python 문법과 작은 자동화 · 파이썬 로그 분석 자동화 - re 와 Counter 로 오류 집계
관련 서재 장
알고리즘 분류
문자열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 제출 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |