99클럽 코테 스터디 3일차 TIL + 백준 31458번 !!초콜릿 중독 주의!!(Python)

모래·2025년 4월 2일

99클럽 스터디

목록 보기
3/20
post-thumbnail

✔️오늘의 학습 키워드

  • 구현
  • 문자열
  • 백준 31458번 !!초콜릿 중독 주의!!

✔️ 공부한 내용

📌 오늘의 문제

📌 작성 코드

import sys
input = sys.stdin.readline

for _ in range(int(input())):
    t = input().strip()
    while (t != 0 or t!= 1):
        if '0!' in t:
            t = t.replace('0!', '1')
            continue
        elif '1!' in t:
            t = t.replace('1!', '1')
            continue
        elif '!0' in t:
            t = t.replace('!0', '1')
        elif '!1' in t:
            t = t.replace('!1', '0')
        else:
            break
    print(t)

✔️ 오늘의 회고

📌 문제 및 시도 방법

입력받은 문자열을 하나씩 바꿔나가는 순으로 시도했다.
팩토리얼 먼저 계산하고 그 후에 왼쪽 !가 있는걸 바꾸도록 진행했다.

📌 문제 해결 방법

  1. 입력받은 문자열이 0이나 1이 될 때까지 반복
  2. 팩토리얼 먼저 1로 변환한다.
  3. !가 왼쪽에 있는 걸 반전해준다.
  4. 최종 결과 반환

📌 새롭게 안 내용

다른 분들이 푼 방식을 봤는데, 깔끔하게 보이는 코드를 가져왔다.

import sys
input = sys.stdin.readline

for _ in range(int(input())):
    t = input().strip()

    num = '0' if '0' in t else '1'
    
    left = t.split(num)[0].count('!')
    right = t.split(num)[1].count('!')

    if right > 0:
        num = '1'
    if left % 2 == 1:
        num = '0' if num == '1' else '1'
    print(num)
        

어차피 정수는 1개니까 그 정수를 기준으로 나눴고,
오른쪽에 있는 느낌표는 개수에 상관없이 무조건 1이니까 오른쪽에 !가 있으면 정수를 1로 하고,
그 후에 왼쪽에 느낌표가 짝수/홀수냐에 따라 정수를 판단해주는 로직을 보고 이렇게 풀 수도 있구나 생각했다.
너무 나는 1차원적으로 생각했던 것 같다.

📌 내일 학습할 내용

내일의 알고리즘 문제를 풀어보고 이해하기

#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL

profile
꾸준히 성장하는 웹 백엔드 개발자가 되자🔥

0개의 댓글