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
- 티스토리챌린지
- 국비지원취업
- Java
- 오블완
- mysql
- UXUIPrimary
- 국비지원
- 환급챌린지
- 오픈챌린지
- 내일배움캠프
- 내일배움카드
- 백엔드 부트캠프
- 디자인교육
- Be
- 객체지향
- 오픈패스
- KDT
- 부트캠프
- baekjoon
- 디자인강의
- 백엔드
- Spring
- 백준
- UXUI챌린지
- 패스트캠퍼스
- UXUI기초정복
- 국비지원교육
- OPENPATH
- 디자인챌린지
- 백엔드개발자
Archives
- Today
- Total
군만두의 IT 공부 일지
[백준] 1316번: 그룹 단어 체커 (파이썬) 본문
✅문제: 1316번
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
📌개념정리
(1) 집합(Set)
- 정의: 중복을 허용하지 않는 순서가 없는 자료구조
- 파이썬에서는 집합 자료형(set)을 이용하여 요소의 중복을 자연스럽게 제거할 수 있음.
- 파이썬에서 집합 사용
- 요소 추가: add() 메소드를 사용하여 집합에 요소를 추가함.
- 요소 확인: in 연산자를 사용하여 요소가 집합에 있는지 확인할 수 있음.
- 요소 삭제: remove() 메소드를 사용하여 집합에서 요소를 제거할 수 있음.
📌문제풀이
주어진 단어가 그룹 단어인지 판별하는 문제임. 그룹 단어는 문자가 연속해서 나타나야 하며, 이전에 나온 문자가 뒤에 다시 등장하면 안 됨.
1. 입력받은 단어 수만큼 반복
2. 각 단어를 순회하면서 현재 문자가 이전에 등장했는지 그리고 연속된 문자인지 확인
3. 집합을 사용하여 이미 등장했던 문자를 저장
4. 연속되지 않은 문자가 집합에 이미 존재하면 그룹 단어가 아님을 판별
5. 모든 단어를 확인한 후 그룹 단어의 수를 출력
n = int(input())
group_word_count = 0 # 그룹 단어의 개수
for _ in range(n):
word = input()
seen = set() # 이미 등장한 문자 저장
is_group_word = True # 현재 단어가 그룹 단어인지 판별
prev_char = '' # 이전에 처리한 문자 저장
for char in word:
if char in seen and char != prev_char: # 현재 문자가 이미 등장했었고, 이전 문자와 다르면
is_group_word = False
break
seen.add(char)
prev_char = char
if is_group_word: # 그룹 단어 판별 후 그룹 단어라면
group_word_count += 1
print(group_word_count)
📌후기
- 처음에는 문제의 요구사항을 이해하는 데 어려웠지만, 한 번 코드를 작성해보고 나니 집합을 활용하는 법을 이해하게 되었음.
- 문자열을 순회하며 이전에 본 문자와 현재 문자를 비교하는 로직을 작성하는 방법을 기억해야겠음.
📌참고자료
1) 위키독스, "02-6 집합 자료형 - 점프 투 파이썬", https://wikidocs.net/1015
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 7795번: 먹을 것인가 먹힐 것인가 (파이썬) (0) | 2024.04.17 |
---|---|
[백준] 2230번: 수 고르기 (파이썬) (0) | 2024.04.14 |
[백준] 3273번: 두 수의 합 (파이썬) (0) | 2024.04.10 |
[백준] 18429번: 근손실 (파이썬) (0) | 2024.04.09 |
[백준] 4949번: 균형잡힌 세상 (파이썬) (0) | 2024.03.12 |
Comments