문제
출처 : www.acmicpc.net/problem/12933
오리의 울음소리는 quack이다.
'q', 'u', 'a', 'c', 'k'로 이루어진 문자열이 주어졌을때,
존재할수있는 오리의 최소수를 구하는 문제다.
풀이
구현문제다.
가능한 최소한의 오리 수를 구해야하므로, 'q'를 만났을때부터 시작해서 오리의 울음(quack)을 만들때마다 각 문자열 위치를 체크해준다.
한 오리를 최대한 많이 울게하면 된다.
예를들어,
울음소리가 quqacukqauackck로 주어졌다면
0번 인덱스에서 첫 'q'를 만나서 탐색을 시작하고 한번의 탐색으로
q u q a c u k q a u a c k c k
빨강색만큼 체크된다. (한오리가 빨강색 만큼 울수있음)
2번인덱스에서 체크되어있지않은 'q'를 만나고 탐색을 시작한다.
q u q a c u k q a u a c k c k
두번째 탐색에선 파랑색만큼 체크되고 총 2마리의 오리가 최소한으로 존재할수있다.
{'q', 'u', 'a', 'c', 'k'}각 문자를 만날때마다 체크해주는게 아니라 quack를 완성했을때 체크해줘야한다.
녹음소리가 올바르지않을때 (-1 출력)예외처리에서 몇번 틀렸는데,
1. 울음소리가 5로 나누어 떨어지지 않을때.
-> quack는 5글자 이므로 올바른 울음소리는 5로 나누었을때 나머지가 0이 나와야한다.
2. 모든 울음소리가 체크되지않았을때.
3. 오리가 0마리일때.
-> 문자입력이 5보다 크다. 따라서 오리가 0마리가 나온다면 올바르지 않은 울음소리다.
소스코드
https://github.com/devxb/JJUNalgo/blob/master/12933%20%EC%98%A4%EB%A6%AC/main.cpp
'알고리즘 (2020 : 08 : 10 ~ ) > 구현, 시뮬' 카테고리의 다른 글
[백준 / BOJ] 8901 화학 제품 (0) | 2020.09.18 |
---|---|
[백준 / BOJ] 15658 연산자 끼워넣기 (2) (0) | 2020.09.16 |
[백준 / BOJ] 5635 생일 (0) | 2020.09.09 |
[백준 / BOJ] 11067 모노톤 길 (0) | 2020.09.07 |
[백준 / BOJ] 14464 소가 길을 건너간 이유 4 (0) | 2020.08.29 |