AtCoder Beginner Contest 456 참가 기록 및 해답 예시 (A D문제)

발행: (2026년 5월 2일 PM 11:25 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

Problem A (Score: 100)

Statement
6면 주사위를 세 번 굴린다. 각 면에는 1부터 6까지의 숫자가 적혀 있다.
정수 (X) 는 1부터 20 사이이다.
세 주사위의 합은 3부터 18까지 가능하다. (X)가 이 범위에 포함되면 "Yes"를 출력하고, 그렇지 않으면 "No"를 출력한다.

X = int(input())
if 3 <= X <= 18:
    print("Yes")
else:
    print("No")

Problem B (Score: 200)

Statement
세 개의 주사위가 있다. i번째 주사위의 j번째 면에 적힌 정수는 (A_{i,j}) ( 1 ≤ (A_{i,j}) ≤ 6 )이며, 각 면이 나올 확률은 (\frac{1}{6})이다.
세 주사위가 4, 5, 6을 어떤 순서로든 나타낼 확률을 구하라.

A = list(map(int, input().split()))
B = list(map(int, input().split()))
C = list(map(int, input().split()))

A4 = A.count(4)
A5 = A.count(5)
A6 = A.count(6)
B4 = B.count(4)
B5 = B.count(5)
B6 = B.count(6)
C4 = C.count(4)
C5 = C.count(5)
C6 = C.count(6)

ans1 = A4 * B5 * C6 / 6**3
ans2 = A4 * B6 * C5 / 6**3
ans3 = A5 * B4 * C6 / 6**3
ans4 = A6 * B4 * C5 / 6**3
ans5 = A5 * B6 * C4 / 6**3
ans6 = A6 * B5 * C4 / 6**3

ans = ans1 + ans2 + ans3 + ans4 + ans5 + ans6
print(ans)

Problem C (Score: 300)

Statement
문자열 (S)는 a, b, c만으로 이루어져 있다 ( (1 \le |S| \le 3 \times 10^5) ).
두 개의 연속된 같은 문자가 나타나지 않는 부분 문자열의 개수를 구하라. 결과는 (998244353)으로 나눈 나머지를 출력한다.

S = list(input())
ans = 0
len_count = 0
prev_char = "x"

for i in range(len(S)):
    if S[i] == prev_char:
        len_count = 0
    len_count += 1
    ans += len_count
    ans %= 998244353
    prev_char = S[i]

print(ans)

Problem D (Score: 400)

Statement
문자열 (S)는 a, b, c만으로 이루어져 있다 ( (1 \le |S| \le 3 \times 10^5) ).
마지막 문자가 a, b, c 중 하나인 부분 수열의 개수를 구하라. 문자열을 스캔하면서 DP와 같은 방식으로 업데이트하고, 결과는 (998244353)으로 나눈 나머지를 사용한다.

S = list(input())
A = 0
B = 0
C = 0

for i in range(len(S)):
    if S[i] == "a":
        A += 1 + B + C
        A %= 998244353
    if S[i] == "b":
        B += 1 + A + C
        B %= 998244353
    if S[i] == "c":
        C += 1 + A + B
        C %= 998244353

ans = (A + B + C) % 998244353
print(ans)
0 조회
Back to Blog

관련 글

더 보기 »

Python 시작하기

오늘 나는 파이썬을 배우기 시작했고, 파이썬이 실제로 어떻게 작동하는지 이해하는 데 도움이 되는 몇 가지 기본 개념을 탐구했습니다. 파이썬이란 무엇인가요?

2026년 FastAPI Quickstart

FastAPI란 무엇인가요? FastAPI는 고성능과 최소한의 보일러플레이트로 RESTful API를 구축하기 위한 현대적인 Python 프레임워크입니다. 2026년에는 산업…