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
- programers
- 안드로이드
- 프로그래머스
- softeer
- kotlin
- SWIFT
- 소프티어
- GDSC
- 아마존 웹 서비스
- 다트
- 개발
- java
- Python
- 파이썬
- aws
- 코틀린
- 코테
- VSCode
- baekjoon
- 머신러닝
- 백준
- 자바
- 플러터
- Android
- DART
- 알고리즘
- Flutter
- 스위프트
- MVVM
- 현대sw
Archives
- Today
- Total
조준장 개발자 생존기
[baekjoon] 백준 12933번(파이썬): 오리 본문
문제
12933번: 오리
첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다.
www.acmicpc.net
알고리즘
- 반복문을 통해 오리의 울음소리를 확인한다.
- 확인은 그 울음의 탐색 유무에 따라 진행한다.
- 울음소리가 quack이고 탐색하지 않았다면 카운트한다.
코드
import sys
def solve(start):
global cnt
quack = 'quack'
j = 0
first = True
# 반복문을 통해 탐색 시작 지점부터 울음소리의 끝 지점까지 울음소리 확인
for i in range(start, len(duck)):
# 울음 소리가 quack이고 탐색하지 않았다면
if duck[i] == quack[j] and not visited[i]:
visited[i] = True
if duck[i] == 'k':
if first:
cnt += 1
first = False
j = 0
continue
j += 1
duck = list(map(str, sys.stdin.readline().rstrip("\n")))
visited = [False] * len(duck)
cnt = 0
if len(duck) % 5 != 0:
print(-1)
exit()
# 반복문을 통해 오리의 울음소리를 확인
for i in range(len(duck)):
# 울음소리에 시작이 q이고 탐색하지 않은 자리라면
if duck[i] == 'q' and not visited[i]:
solve(i)
if not all(visited) or cnt == 0:
print(-1)
else:
print(cnt)
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법(Python)
내가 푼 코딩 테스트 문제와 해결법(Python). Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 20291번(파이썬): 파일 정리 (0) | 2022.08.28 |
---|---|
[baekjoon] 백준 12933번(코틀린): 오리 (0) | 2022.08.27 |
[baekjoon] 백준 1913번(코틀린): 달팽이 (0) | 2022.08.21 |
[baekjoon] 백준 1913번(파이썬): 달팽이 (0) | 2022.08.20 |
[programers] 프로그래머스(코틀린) : 가장 먼 노드 (0) | 2022.08.19 |