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
- Android
- DART
- 알고리즘
- 플러터
- 파이썬
- 안드로이드
- 코테
- 프로그래머스
- 스위프트
- aws
- 백준
- 다트
- Flutter
- 개발
- programers
- SWIFT
- 코틀린
- 자바
- java
- kotlin
- VSCode
- 현대sw
- Python
- GDSC
- 소프티어
- MVVM
- baekjoon
- 아마존 웹 서비스
- softeer
- 머신러닝
Archives
- Today
- Total
조준장 개발자 생존기
[baekjoon] 백준 1316번(파이썬): 그룹 단어 체커 본문
문제
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
알고리즘
- 반복문을 통해 단어를 확인한다.
- 반복문을 통해 각 단어들의 문자를 확인한다.
- 현재 비교하고 있는 문자와 다음 문자들을 확인하면서 그룹 단어의 유무를 판단한다.
코드
import sys
n = int(sys.stdin.readline())
cnt = 0
# 반복문을 통해 단어를 확인
for _ in range(n):
word = list(map(str, sys.stdin.readline().strip()))
stack = [word[0]] # 스택을 이용하여 문제를 수행
flag = True # 그룹 단어의 유무
# 반복문을 통해 스택에 있는 문자와 비교하는 문자를 확인
for i in range(1, len(word)):
# 스택에 담겨있는 문자가 현재 비교하고 있는 문자와 다르고 스택에 현재 비교하고 있는 문자가 있다면
# 그룹 단어가 될 수 없다.
if stack[i - 1] != word[i]:
if word[i] in stack:
flag = False
break
# 스택에 현재 비교한 문자를 추가한다.
stack.append(word[i])
# 그룹 단어의 유무에 따라 카운트
if flag:
cnt += 1
print(cnt)
다른 사람의 성공 코드
import sys
n = int(sys.stdin.readline())
cnt = n
# 반복문을 통해 단어를 확인
for _ in range(n):
word = list(map(str, sys.stdin.readline().strip()))
# 반복문을 통해 현재 문자와 다음 문자를 비교
for i in range(len(word) - 1):
# 현재 문자와 다음 문자가 같으면 패스
if word[i] == word[i + 1]:
pass
# 현재 문자가 다음 문자중에 있으면 그룹 단어가 될 수 없다.
elif word[i] in word[i + 1:]:
cnt -= 1
break
print(cnt)
다른 사람의 성공 코드와 나의 코드를 비교했을 때 시간과 메모리는 같았지만 코드 길이가 달랐다. 다른 사람의 성공 코드가 더 직관적이라 이해하기 더 쉬울 것 같다.
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 11718번(파이썬): 그대로 출력하기 (0) | 2021.12.22 |
---|---|
[baekjoon] 백준 2941번(파이썬): 크로아티아 알파벳 (0) | 2021.12.21 |
[baekjoon] 백준 1157번(파이썬): 단어 공부 (0) | 2021.12.19 |
[baekjoon] 백준 2675번(파이썬): 문자열 반복 (0) | 2021.12.18 |
[baekjoon] 백준 1152번(파이썬): 단어의 개수 (0) | 2021.12.17 |