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 | 31 |
Tags
- 그리디알고리즘
- 파이썬
- 알고리즘
- database
- mongoDB
- 그리디
- 마크다운문법
- 탐색알고리즘
- 코테
- 알고리즘기초
- 데이터베이스
- NoSQL
- 코딩문제
- 인프콘2024
- 코딩테스트
- 몽고DB
- 그래프
- Algorithm
- db
- 수학
- 기초
- 수열
- httpCode
- 데이터
- chatGPT
- 백준
- Python
- Markdown
- 마크다운
- 소수
Archives
- Today
- Total
Dev_from the Bottom
#40. Algorithm30_python) 그룹 단어 체커_백준 1316 본문
문제) 크로아티아 알파벳
- 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다.
- 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.
- 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.
입력)
- 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다.
출력)
- 첫째 줄에 그룹 단어의 개수를 출력한다.
문제 링크) https://www.acmicpc.net/problem/1316
Step1) 테스트
- idea : 단어의 알파벳을 하나씩 확인하여, 연속되지 않은 알파벳이 나올 경우 이하 새로운 단어를 만들고 확인했던 알파벳이 또 등장하는가 확인
word = 'aca' # happy, new, year
group = True # 그룹 단어인지 판단 boolean
# print(len(word))
for i in range(len(word)-1):
# print(i)
if word[i] != word[i+1]: # 연속되는 알파벳이 다를 때
new_word = word[i+1:] # 이하 새로운 단어 생성
if new_word.count(word[i]) > 0: # 새로운 단어에 알파벳 word[i]가 있다면
group = False # 그룹 단어 아님
# print(group)
print(f'{word} : {group}')
>>>
aca : False
happy : True
new : True
year: True
Step2) 정답
n = int(input())
cnt_group = 0 # 그룹 단어 카운트
for _ in range(n):
word = input()
no_group = 0
for i in range(len(word)-1):
if word[i] != word[i+1]:
new_word = word[i+1:]
if new_word.count(word[i]) > 0:
no_group += 1
if no_group == 0: # 그룹 단어가 아니라면
cnt_group += 1 # 카운트 +1
print(cnt_group)
# 배운 점
- index 자유롭게 활용
- 복잡한 구조의 이중 for문
# 소회
- 까다로웠던 문제
'Algorithm_study' 카테고리의 다른 글
#42. Algorithm32_python) 단어의 개수_백준 1152 (0) | 2022.06.13 |
---|---|
#41. Algorithm31_python) 스택(Stack), 큐(Que), 재귀 함수(Recursive Function) (0) | 2022.06.12 |
#39. Algorithm29_python) 크로아티아 알파벳_백준 2941 (0) | 2022.06.11 |
#38. Algorithm28_python) 상근이의 여행_백준 9372 (0) | 2022.06.10 |
#37. Algorithm27_python) 단어 공부_백준 1157 (0) | 2022.06.10 |
Comments