99클럽 코테 스터디 3일차 TIL + !!초콜릿 중독 주의!!
by Bigdaditor문제 정리
- 비기너: https://www.acmicpc.net/problem/31458
- 미들러: https://school.programmers.co.kr/learn/courses/30/lessons/161990
- 챌린저: https://www.acmicpc.net/problem/1450
오늘의 주제
!!초콜릿 중독 주의!!
오늘의 회고
숫자를 기준으로 느낌표 위치에 따라서 연산이 달라지는 방식 구현을 위해 인덱스를 어떻게 이동시킬지에서 막혔다. 인덱스를 나눠서 숫자를 기준으로 왕복하면서 느낌표를 파싱하는 방법에 대해서 고민을 했다. 이 고민을 하면서 숫자 위치를 파싱하는 방법도 추가로 튀어나왔다. 이렇게 고민을 하면서 시간을 보내고 30분이 지나서 코드를 미완성 상태로 제출했다.
답을 알기위해 전능하신 ChatGPT에게 물었고 답은 의외로 간단했다.
Python에서 while 문을 통해 인덱스를 이동시키면서 문자열에 느낌표가 있으면 인덱스를 증가하고 왼쪽 느낌표 갯수를 증가시키면 됐다. 느낌표가 없을 때 까지 while 문이 반복하기 때문이다. 오른쪽 느낌표 갯수를 확인할 떄는 문자열 크기보다 인덱스가 작은 지를 판단하는 조건을 추가하면 된다.
의외로 답은 단순하게 생각해야했다.
# 팩토리얼 먼저 계산
def factorial(n):
return 1 # 0! = 1! = 1 이니까 상수 반환
N = int(input().rstrip())
for idx in range(N):
T = input().rstrip()
# 느낌표 왼쪽 개수 세기
left = 0
i = 0
while T[i] == '!':
left += 1
i += 1
# 숫자 확인
n = int(T[i])
i += 1
# 느낌표 오른쪽 개수 세기
right = 0
while i < len(T) and T[i] == '!':
right += 1
i += 1
for _ in range(right):
n = factorial(n)
# NOT 연산
for _ in range(left):
n = 1 - n # 논리 NOT
print(n)
'스터디 > 99클럽 6기' 카테고리의 다른 글
99클럽 코테 스터디 7일차 TIL + 좋은 단어 (0) | 2025.04.08 |
---|---|
99클럽 코테 스터디 6일차 TIL + Climbing Stairs (0) | 2025.04.07 |
99클럽 코테 스터디 4일차 TIL + implement-queue-using-stacks (0) | 2025.04.04 |
99클럽 코테 스터디 2일차 TIL + 문자열 분석 (0) | 2025.04.01 |
99클럽 코테 스터디 1일차 TIL + 명령 프롬프트 (0) | 2025.03.31 |
블로그의 정보
DataEdit
Bigdaditor