728x90
https://www.acmicpc.net/problem/2684
22/09/14
브론즈 문제라서 뇌 빼고 코딩했다. 그냥 문자열 비교를 해서 풀었다. 근데 좀 더 단순한 구현도 있을 것 같다.
문제 접근 방식:
3중 for문으로 구현했다. 제일 바깥쪽 for문은 3-동전수열 중 하나를 뽑는 for문, 두 번째와 세 번째 for문은 문자열 비교를 실행하는 for문인데, 이 문자열 비교를 40개짜리 문자열과 미리 뽑아놓은 3-동전 수열끼리 진행하는 것이다.
가능한 3-동전 수열은 총 8개가 있으므로, 제일 바깥쪽은 8번, 안쪽은 38*3번을 돌아서 3중 for문을 해도 충분하다고 생각했다.
아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.
더보기
# 2684번 동전 게임
# 문자열
import sys
input = sys.stdin.readline
T = int(input())
coins = ['TTT','TTH','THT','THH','HTT','HTH','HHT','HHH']
for _ in range(T):
S = input().rstrip()
result = []
for coin in coins:
total = 0
for start in range(38):
for i in range(3):
if S[start+i] != coin[i]:
total -= 1
break
total += 1
result.append(total)
print(*result)
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[Python] 15904번 UCPC는 무엇의 약자일까? (0) | 2022.09.28 |
---|---|
[Python] 17413번 단어 뒤집기 2 (0) | 2022.09.28 |
[Python] 5525번 IOIOI (0) | 2022.09.27 |
[Python] 9996번 한국이 그리울 땐 서버에 접속하지 (0) | 2022.09.27 |
[Python] 9342번 염색체 (0) | 2022.09.27 |