이 영역을 누르면 첫 페이지로 이동
포렌식 & 개발 이야기 - Forensics & Development 블로그의 첫 페이지로 이동

포렌식 & 개발 이야기 - Forensics & Development

페이지 맨 위로 올라가기

포렌식 & 개발 이야기 - Forensics & Development

Pental - Forensics / iOS / Windows / Android / Kakaotalk / Telegram / Etc

백준 1316 - 그룹 단어 체커 (파이썬)

  • 2025.02.28 00:03
  • Programming/백준
글 작성자: pental

https://www.acmicpc.net/problem/1316

풀이

문제 이해

  • 주어진 단어가 그룹 단어인지 판별하는 문제
  • 그룹 단어란, 단어에서 연속적으로 나타나는 문자만 허용되는 단어
    • 예시) aabb → O
    • 예시) ababa → X (b가 다시 등장)

알고리즘 동작

  1. count 변수를 선언하여 그룹 단어 개수를 저장
  2. arr의 각 단어에 대해 아래 과정 수행
    1. check 리스트를 통해서 알파벳 26개의 방문 여부를 저장한다.
    2. prev 변수를 사용해서 이전 문자를 저장하여 비교
  3. 각 문자 w를 순회하며, prev가 w가 다르면 이미 나온 문자면 그룹 단어가 아님
    1. 아니라면, check 배열에 방문을 표시하고, prev 값을 현재 문자로 업데이트 진행한다.
  4. 중간에 break 없이 끝까지 검사되면 그룹 단어이다.

시간 복잡도 분석

  1. 각 단어를 O(L) 만큼 탐색
  2. 전체 과정은 O(NL)
  3. 최악의 경우 O(100 * 100) = O(10,000) 번 연산이므로 충분히 빠름.

코드

# 백준 1316 - 그룹 단어 체커
# 분류 : 문자열
N = int(input())
arr = [input() for _ in range(N)]

count = 0
for word in arr :
    check = [False] * 26
    prev = ''
    for w in word :
        if prev != w :
            if check[ord(w) - 97] :
                break
            check[ord(w) - 97] = True
        prev = w
    else :
        count += 1

print(count)
저작자표시 비영리 (새창열림)

'Programming > 백준' 카테고리의 다른 글

백준 20442 - ㅋㅋ루ㅋㅋ  (0) 2025.03.01
백준 14675 - 단절점과 단절선 (파이썬)  (0) 2025.02.28
백준 20922 - 겹치는 건 싫어 (파이썬)  (0) 2025.02.27
백준 14502 - 연구소 (파이썬)  (0) 2025.02.26
백준 6064 - 카잉 달력 (파이썬)  (1) 2025.02.25

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 백준 20442 - ㅋㅋ루ㅋㅋ

    백준 20442 - ㅋㅋ루ㅋㅋ

    2025.03.01
  • 백준 14675 - 단절점과 단절선 (파이썬)

    백준 14675 - 단절점과 단절선 (파이썬)

    2025.02.28
  • 백준 20922 - 겹치는 건 싫어 (파이썬)

    백준 20922 - 겹치는 건 싫어 (파이썬)

    2025.02.27
  • 백준 14502 - 연구소 (파이썬)

    백준 14502 - 연구소 (파이썬)

    2025.02.26
다른 글 더 둘러보기

정보

포렌식 & 개발 이야기 - Forensics & Development 블로그의 첫 페이지로 이동

포렌식 & 개발 이야기 - Forensics & Development

  • 포렌식 & 개발 이야기 - Forensics & Development의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

카테고리

  • Category (452)
    • Forensics (105)
      • Magnet AXIOM (28)
      • Digital Forensics Informati.. (9)
      • Iphone Forensics (24)
      • DFC (7)
      • 디지털포렌식전문가2급 자격증 (10)
      • FTK ACE 자격증 (7)
    • 이것저것 (7)
      • Ubuntu (6)
      • 디스코드 봇 (4)
      • Volatility GUI (2)
    • CTF (32)
      • NEWSECU (14)
      • CTF-d (5)
      • Puzzel - Network Forensics (2)
      • Security Traps (2)
      • system32.kr (5)
      • HMCTF (4)
    • Programming (260)
      • C (10)
      • Python (11)
      • 백준 (206)
      • 프로그래머스 (32)
    • 그냥 개발 및 잡담 (16)
      • Docker (2)
      • Google Cloud (3)
      • OS 개발 (3)
    • Best of Best (20)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 파이썬
  • 포렌식
  • 디지털포렌식
  • 백준
  • 프로그래머스
  • pental
  • axiom
  • Forensics
  • 전체 보기…

정보

pental의 포렌식 & 개발 이야기 - Forensics & Development

포렌식 & 개발 이야기 - Forensics & Development

pental

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © pental.

티스토리툴바