문제 1009 · 입문 2
커밋 메시지 검사
문자열
테스트별 제한 1000ms · 브라우저 채점
문제
우리 팀의 커밋 메시지는 `종류: 요약` 꼴이어야 한다. 자세한 규칙은 다음과 같다. 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개를 저장합니다.