알고리즘 문제 풀이: 파이썬/BOJ

[BOJ_13022] 늑대와 올바른 단어

hueco 2022. 10. 2.

 

📌 문제 링크: https://www.acmicpc.net/problem/13022

 

13022번: 늑대와 올바른 단어

첫째 줄에 단어가 주어진다. 단어는 w, o, l, f로만 이루어져 있으며, 길이는 50을 넘지 않는다.

www.acmicpc.net

 

내 풀이(Success) :

 

🧐 Review:

 

어렵지 않아 보이는 문제였지만 여러 조건을 따져봐야 해서 푸는 것이 쉽지 않았다. 그리고 구글 검색 기준(2022년 10월 2일)으로 파이썬으로 작성된 공개된 풀이가 3개밖에 없었고, 접근 방식이 내 풀이와 다른 것 같아서 별다른 도움을 받을 수도 없었다. 그렇게 여러 테스트 케이스를 넣어가면서 코드를 계속해서 수정했고 그 결과 문제를 풀 수 있었다. 야호!!

 

 올바른 단어를 만들기 위해서는 w, o, l, f가 순서대로 나오고 각각 n번씩 등장해야 한다. 그래서 올바른 단어가 되기 위해서는 단어의 길이가 4의 배수가 되야 한다. 이 조건에 부합하지 않는다면 올바른 단어가 아니기 때문에 0을 출력하고, 코드의 실행을 중지시킨다. [코드 3 ~ 5]

코드의 6 ~ 8번 행은 'wolfwwww'같은 입력이 들어오는 경우 올바른 단어가 아닌 것을 체크해주기 위해서 넣었다. 'wolfoooo', 'wolfllll' 같은 것들은 기존에 내가 작성했던 풀이의 for 문 안에서 충분히 확인이 가능하다. 여러 테스트 케이스를 확인하다가 해당 엣지 케이스를 잡기 위해서 나중에 추가된 부분이다. [코드 6 ~ 8]

다음으로 for 반복문에서는 내가 생각하는 올바른 단어를 체크하기 위한 조건들을 넣었다. for 반복문이 올바르게 종료되고, w, o, l, f도 빈 문자열이라면 올바른 단어이기 때문에 answer의 값을 1로 변경한다.

 

🚩 Idea:

 - 문제에서 주어진 올바른 단어를 만드는 기준에 따라 기준에 부합하지 않는 경우가 나올 경우 break로 반복문을 종료시켰다.

 - 단어를 f를 기준으로 나눠서 나뉘어진 단어들이 올바른 단어인지 체크하려고 생각을 해봤지만 오히려 더 복잡할 것 같았고, 문자열의 처음부터 올바른 단어인지 체크하는 로직을 구상했다.

 

 
 
 
 
 
 

'알고리즘 문제 풀이: 파이썬 > BOJ' 카테고리의 다른 글

[BOJ_1544] 사이클 단어  (0) 2022.10.09
[BOJ_25192] 인사성 밝은 곰곰이  (0) 2022.10.06
[BOJ_20310] 타노스  (0) 2022.10.01
[BOJ_1120] 문자열  (0) 2022.10.01
[BOJ_2607] 비슷한 단어  (0) 2022.10.01

댓글