Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- dynamic
- Algorithm
- loop
- Unreal Engine 5
- W3Schools
- 시작해요 언리얼 2022
- c++
- dfs
- 파이썬
- github
- DP
- parameter
- Tutorial
- Basic
- Programming
- 문제풀이
- Material
- UE5
- w3school
- C#
- guide
- Class
- python
- 기초
- Unity
- 오류
- 백준
- String
- 재귀
- 프로그래밍
Archives
- Today
- Total
행복한 개구리
백준 21.11.25. 1316 - 그룹 단어 체커 본문
n = int(input())
result = 0
for _ in range(n):
word = input().lower()
error = 0
for idx in range(len(word)-1):
if word[idx] != word[idx+1]:
leftPart = word[idx+1:]
if leftPart.count(word[idx]) != 0:
error += 1
if error == 0:
result += 1
print(result)
- 우선 처음에 입력받은 수만큼 반복을 돌리는 구조로 진행합니다.
- 그리고 그룹단어의 개수를 저장할 result 변수를 미리 생성합니다.
- 처음에 입력받은 수만큼 단어를 입력받습니다.
- 여기서 error라는 변수를 설정해주는데 error변수는 그룹단어가 아닌 것을 찾아내기 위한 변수입니다.
- 편의상 int값으로 했지만 str이던 bool이던 상관없습니다.
- 여기서 error라는 변수를 설정해주는데 error변수는 그룹단어가 아닌 것을 찾아내기 위한 변수입니다.
- 중첩 for반복문으로 입력받은 단어를 인덱스의 순서대로 탐색하기 시작합니다.
- 그러다가 word[idx]의 값이 word[idx+1]의 값과 다르다면 leftPart라는 변수에 단어의 남은 부분을 저장합니다.
- 따라서 leftPart는 word[idx+1:]이 됩니다 => 'word[idx+1]부터 끝까지' 라는 뜻
- 그리고 남은부분에서 이미 나온 글자가 나왔는지 검색을 해야합니다.
- 따라서 count메서드를 사용하여 leftPart에서 word[idx]와 일치하는 요소가 몇개나 있는지 살펴봅니다.
- 만약 그 값이 0이 아니라면 (=> 존재한다면)
- error의 값을 1 늘려줍니다.
- bool값이라면 error를 처음에 false로 두고 이 때 True로 바꿔줘도 되며, str이라면 초기에 설정해둔 str값과 다른 값을 지정해주면 됩니다.
- 마지막으로 error값이 초기값과 다른지 살펴봅니다.
- 초기값과 다르지 않다면 에러가 나지 않았다는 뜻이므로 그룹단어라는 뜻입니다.
- 그러므로 result에 1을 더해주어 그룹단어의 개수가 1개 늘었음을 표시해줍시다.
- 이 모든 반복문이 끝나고 난 뒤 총계된 result의 값을 출력해주면 됩니다.
'Algorithm > BaekJoon' 카테고리의 다른 글
백준 21.11.26. 2292번 - 벌집 (0) | 2021.11.26 |
---|---|
백준 21.11.25. 1712번 - 손익분기점 (0) | 2021.11.25 |
백준21.11.25. 2941번 - 크로아티아 알파벳 (0) | 2021.11.25 |
백준 21.10.27. 5622 - 다이얼 (0) | 2021.10.27 |
백준 21.10.26. 2908 - 상수 (0) | 2021.10.26 |