728x90
링크
https://www.acmicpc.net/problem/14405
난이도(solved.ac 참고)
실버5
풀이
이 문제는 너무 쉬워서 포스팅을 할지 말지 고민을 좀 했는데, 내 나름대로 괜찮다고 느꼈던 테크닉을 적기 위해 포스팅한다.
문자열에서 어떤 문자의 빈도를 구하기 위해서는 6행과 같은 방법이 괜찮다고 생각했다.
해당하는 값을 전부 *로 replace를 해주면 들어간 횟수를 구할 수 있다.
이 문제 한정으로 얘기를 해 보면, "pi", "ka", "chu" 외의 문자가 들어갈 경우 무조건 NO를 출력해야 한다. 그래서 *로 전부 바꾼 a를 돌면서 *가 아닌 값이 하나라도 있다면 flag를 False로 바꾼 뒤, flag가 False면 NO를 출력하게끔 했다.
알고 나면 괜찮은 테크닉이지만 모른다면 생각보다 코드가 많이 길어질 것이라고 생각한다.
비슷한 문제로 크로아티아 알파벳이 있다. 이 테크닉을 사용해서 풀어 보면 좋은 문제이다.
'CS > 알고리즘' 카테고리의 다른 글
[Python] TypeError: sequence item 0: expected str instance, int found 해결 (int형 list join하기) (0) | 2021.09.08 |
---|---|
[Python] BOJ(백준) 5568번 - 카드 놓기 (0) | 2021.09.08 |
[Python] BOJ(백준) 1715번 - 카드 정렬하기 (0) | 2021.09.07 |
[Python] BOJ(백준) 14916번 - 거스름돈 (0) | 2021.09.06 |
[PyPy] BOJ(백준) 1325번 - 효율적인 해킹 (0) | 2021.09.05 |