-
[백준] 1316번 문제 (그룹 단어 체커) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 5. 16. 21:48
n = input() tmpStr = "" count = 0 for _ in range(int(n)): data = input() for s in data: if len(data) == 1: count += 1 else: if tmpStr.find(s) == -1: tmpStr += s else: if s != tmpStr[len(tmpStr)-1]: tmpStr = "" else: tmpStr += s if len(data) == len(tmpStr): count += 1 tmpStr = "" print(count)
내가 작성한 코드
문장의 길이가 한개이면 바로 카운트를 해주었고 그외에 경우에는 tmpStr의 단어 하나 하나를 추가로 할당해주면서
비교하여 문제를 해결했다. 연속되지 않는 글자를 찾은 방법은 s의 값이 tmpStr[tmpStr의 마지막 인덱스..]과 같지 않으면 tmpStr을
빈값으로 할당하고 한 단어의 for문이 끝나면 완전한 단어인 data의 길이와 임시로 만든 tmpStr의 길이를 비교하여 같은 경우에만
카운트를 해주었다..
문제를 해결하고 내가 작성한 코드의 절반도 채 안 되는 풀이가 있길래 확인해봤는데 내가 전혀 생각치 못한 방법으로 풀었다.
그 방법은 예를들어 입력받은 문자가 abaa라면 일단 각 글자가 몇개씩 사용됐는지 센다.
a는 3개
b는 1개
이런식으로..
그 다음 문장에서 a를 3번 곱한 즉 aaa를 찾는다.
그러면 abaa는 aaa가 존재하지 않으니 그룹 단어가 아니게 된다.
창의적이었다.
앞으로 더 열심히 해야겠다..
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1193번 문제 (분수찾기) 파이썬(Python) 풀이 (0) 2021.05.18 [백준] 2292번 문제 (벌집) 파이썬(Python) 풀이 (0) 2021.05.18 [백준] 10809번 문제 (알파벳 찾기) 파이썬(Python) 풀이 (0) 2021.05.16 [백준] 1065번 문제 (한수) 파이썬(Python) 풀이 (0) 2021.05.16 [백준] 8958번 문제 (OX퀴즈) 파이썬(Python) 풀이 (0) 2021.05.16