Algorithm/백준

[백준 알고리즘] 1316번: 그룹 단어 체커 (Python)

에릭 Kim 2023. 3. 22. 17:58
반응형

https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

 

소스코드

 

풀이

1.리스트를 만들어 확인하려고 하는 문자가 이미 리스트에 들어가 있는지, 2. 확인하려고 하는 문자가 바로 이전문자와 같지 않은지 이 두가지를 비교할 수 있다면 어렵지 않게 풀 수 있는 문제입니다.

 

'for i in words:'에서 입력받은 문자의 알파벳을 하나씩 읽고, 읽은 문자가 위의 1번과 2번에 모두 성립한다면 그 단어는 그룹 단어가 아니기 때문에 break로 반복문을 빠져나옵니다. 

둘 중 하나라도 성립하지 않는다면 그룹 단어가 될 수 있는 요건이 갖춰지기 때문에 해당 알파벳을 리스트에 추가하고 이전 알파벳을 해당 알파벳으로 바꿔줍니다.('word = i')

 

여기서 for ~ else 구문이 사용되는데

for ~ else 구문은 for문이 break 등에 의해 중간에 멈추지 않고 끝까지 반복문이 수행된다면 else 구문을 수행하는 구문입니다.

그렇기에 위 코드에서 break 문에 걸리지 않는다는 것은 해당 단어가 그룹 단어라는 의미이기 때문에 개수를 세아리는 변수인 count 를 + 1 해줍니다 ! 

반응형