백준 파이썬 코딩테스트 (그룹 단어 체커)

2025. 8. 5. 20:01·코딩테스트/BaekJoon

백준 1316번 문제

그룹 단어 체커


문제

 


풀이

1.

우선 문제를 정확하게 이해하는게 중요할 것 같다.

연속이 되는 단어를 찾는것이다.

 

즉 aba는 a가 이미 나온상태에서 b뒤에 a가 있어서 탈락,

aab는 a가 두번이지만 연속되어서 통과이다. 이러한 기준으로 문제를 풀 면된다.

 

내가 생각해낸 방법은 set을 이용해서 우선 입력값의 중복을 제거.

반복문으로 입력 단어의 문자만큼 반복하여서 i번 인덱스와 i+1번의 인덱스가 동일하다면, 넘어가고,

i번의 인덱스가 i+1과 다르다면 i번의 문자를 set에서 지움. 

이렇게 반복했을때, 만약 set에서 지워진 문자가 단어에 존재한다면 break 후 count는 0으로 유지하고, break가 안되면 

카운트에 1을 더한다.

이를 인풋 숫자만큼 반복을 하면 될 것 같다.

 

 

2. 

위의 방법을 생각하다가 새로운 방법이 생각났다. 이는 좀더 간편한 방법인데

새로운 리스트를 생성해서, 인풋 단어의 문자를 리스트에 추가한다.

 

이때 이미 리스트에 존재하는 문자가 들어온다면 break한다.

여기서 바로 직전에 나온 문자와 동일하다면, 이는 pass한다.

 

 

3. 

문제를 풀면서 생각했는데, 카운팅을 하기보다 지우는게 더 나을 것 같다.
즉 1,2,3번 중 그룹 문자가 1,2 번 이라면 +1 +1 하는 것 보다, 

그룹문자가 아닐때, n에서 -1을 하는 방법이다.

 

 

결국 정리하자면,

n을 받아 몇개의 단어인지 확인.

n번 반복하는데, word를 매개변수로 단어를 받음.

이때, already란 리스트와 last를 초기화.

이는 already는 그룹 문자가 아닌 것을 판별하는 용도이고, last는 연속된 문자를 판별하는 용도이다.

 

즉 word의 문자가 이전 문자와 다르고, 이미 already에 들어있다면

n에서 -1을 하는 것이다.

 

즉 그룹체커를 확인해서 +1 하는것 보다 n을 이용해서 아닌것을 -1하는 것이다.

 

 


결과

import sys
n = int(sys.stdin.readline().strip())

for _ in range(n):
    word = sys.stdin.readline().strip()
    already = []
    last = ''
    
    for char in word:
        if char != last:
            if char in already:
                n -= 1
                break
            already.append(char)
        last = char

print(n)

 

 

 

Coding_Test/백준/Silver/1316. 그룹 단어 체커 at main · K-MarkLee/Coding_Test

 

Coding_Test/백준/Silver/1316. 그룹 단어 체커 at main · K-MarkLee/Coding_Test

This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - K-MarkLee/Coding_Test

github.com

 

저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > BaekJoon' 카테고리의 다른 글

백준 파이썬 코딩테스트 (행렬 덧셈)  (2) 2025.08.07
백준 파이썬 코딩테스트 (너의 평점은)  (2) 2025.08.06
백준 파이썬 코딩테스트 (크로아티아 알파벳)  (1) 2025.08.04
백준 파이썬 코딩테스트 (단어 공부)  (2) 2025.08.01
백준 파이썬코딩테스트 (팰린드롬인지 확인하기)  (4) 2025.08.01
'코딩테스트/BaekJoon' 카테고리의 다른 글
  • 백준 파이썬 코딩테스트 (행렬 덧셈)
  • 백준 파이썬 코딩테스트 (너의 평점은)
  • 백준 파이썬 코딩테스트 (크로아티아 알파벳)
  • 백준 파이썬 코딩테스트 (단어 공부)
코드 유랑자 승열
코드 유랑자 승열
코드 유랑자 승열의 프로그래밍 일지를 남기는 공간입니다.
  • 코드 유랑자 승열
    승열의 프로그래밍 시네마
    코드 유랑자 승열
  • 전체
    오늘
    어제
  • 링크

    • 깃허브 보러가기
    • 링크드인 보러가기
    • 카테고리
      • 코딩테스트
        • LeetCode
        • BaekJoon
      • TIL and WIL
        • TIL
        • WIL
      • 주말스터디
      • 내일배움캠프
        • 사전캠프 강의 (SQL)
      • 용어정리
        • Python
        • Python-Library
        • Machine-Learning
        • Deep-Learning
        • AI 활용
        • LLM & RAG
        • Docker
        • Django
        • SQL
        • Java Script
        • etc
      • Daily 코드카타
        • SQL
        • Python 알고리즘
      • 임시저장
      • 보류
  • 태그

    View
    오블완
    template
    langchain
    티스토리챌린지
    llm
    django
    RAG
    vector db
    word2vec
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코드 유랑자 승열
백준 파이썬 코딩테스트 (그룹 단어 체커)
상단으로

티스토리툴바