[백준 / BOJ] 1316번 그룹 단어 체커 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 1. 17. 16:33
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/1316
문제
문제 풀이
C++ 상세 풀이
더보기
아이디어가 떠오르면 구현하기는 아주 쉬운 문제이다. 이것도 알파벳이니 이전 문제들과 똑같은 맥락으로 alphabet 배열을 선언해 모두 0으로 초기화한다. (bool형으로 선언해 false로 초기화하거나 해도 좋다.)
연속으로 계속 같은 문자가 나와야 하므로, 먼저 새로운 알파벳이 나오면 배열에서 1로 변경하고, 이후에도 같은 문자가 나온다면 바로 앞의 문자와 비교해 같은 알파벳이면 넘어가고 다른 알파벳이 나오면 그룹 단어가 아닌 것으로 판정하도록 한다.
for (int j = 0; j < len; ++j)
{
if (alp[str[j] - 'a'] == 0)
alp[str[j] - 'a'] = 1;
else if ((alp[str[j] - 'a'] == 1) && (str[j] != str[j - 1]))
{
cnt--;
break;
}
}
Python 상세 풀이
더보기
연속으로 계속 같은 문자가 나와야 하므로 바로 앞의 문자와 비교해 같은 알파벳이면 넘어가고 앞 문자와 다른 문자인데 이후에 현재 문자와 같은 문자가 존재하면 그룹 단어가 아니니 제외하고 반복문을 빠져나온다.
for _ in range(N):
text = input()
for i in range(len(text) - 1):
if text[i] == text[i + 1]:
pass
elif text[i] in text[i + 1:]:
res = res - 1
break
C++ 코드 전문
Python 코드 전문
소감
확실히 파이썬은 사용자에 따라 많은 풀이가 가능한 것 같다.
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 2292번 벌집 (C++, Python) (0) | 2022.01.18 |
---|---|
[백준 / BOJ] 1712번 손익분기점 (C++, Python) (0) | 2022.01.18 |
[백준 / BOJ] 2941번 크로아티아 알파벳 (C++, Python) (0) | 2022.01.17 |
[백준 / BOJ] 5622번 다이얼 (C++, Python) (0) | 2022.01.17 |
[백준 / BOJ] 2908번 상수 (C++, Python) (0) | 2022.01.17 |
@Reo :: 코드 아카이브
자기계발 블로그