Skip to content

Commit 0abc54b

Browse files
committed
[Bronze I] Title: 2023년은 검은 토끼의 해, Time: 5792 ms, Memory: 32412 KB -BaekjoonHub
1 parent fbcc7a4 commit 0abc54b

2 files changed

Lines changed: 79 additions & 0 deletions

File tree

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# 27494 2023년은 검은 토끼의 해
2+
# 브론즈 1
3+
4+
import sys
5+
input = sys.stdin.readline
6+
7+
N = int(input())
8+
cnt = 0
9+
10+
# 2023을 부분수열로 포함하는지 확인
11+
def check(s: str) -> bool:
12+
target = '2023'
13+
ti = 0 # 한자리 맞출 때마다 표시, 4면 2023 다 찾은 거
14+
for ch in s: # 문자열 한자리씩 봄
15+
if ch == target[ti]:
16+
ti += 1
17+
if ti == 4: #
18+
return True
19+
return False
20+
21+
for number in range(1, N+1):
22+
s = str(number)
23+
if len(s) < 4: # 네자릿수 미만이면 성립 불가능으로 스킵
24+
continue
25+
if check(s):
26+
cnt += 1
27+
print(cnt)
28+
29+
30+
"""
31+
# 20023 같은 것도 정답 복권이 될 수 있음을 간과한 코드
32+
33+
remove_set = {'1', '4', '5', '6', '7', '8', '9'}
34+
35+
for number in range(1, N+1):
36+
num = list(str(number))
37+
num = [i for i in num if i not in remove_set]
38+
39+
check = ''.join(num)
40+
if '2023' in check:
41+
cnt += 1
42+
43+
print(cnt)
44+
45+
"""
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# [Bronze I] 2023년은 검은 토끼의 해 - 27494
2+
3+
[문제 링크](https://www.acmicpc.net/problem/27494)
4+
5+
### 성능 요약
6+
7+
메모리: 32412 KB, 시간: 5792 ms
8+
9+
### 분류
10+
11+
문자열, 브루트포스 알고리즘
12+
13+
### 제출 일자
14+
15+
2025년 6월 15일 20:02:30
16+
17+
### 문제 설명
18+
19+
<p>2023년은 검은 토끼의 해로 불린다. 스타는 검은 토끼의 해를 기념해서 흑묘 복권을 만들려고 한다.</p>
20+
21+
<p>흑묘 복권은 총 <mjx-container class="MathJax" jax="CHTML" style="font-size: 104.6%; position: relative;"><mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mi class="mjx-i"><mjx-c class="mjx-c1D441 TEX-I"></mjx-c></mjx-mi></mjx-math><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>N</mi></math></mjx-assistive-mml><span aria-hidden="true" class="no-mathjax mjx-copytext">$N$</span></mjx-container>개의 티켓으로 구성된다. 각 티켓에는 <mjx-container class="MathJax" jax="CHTML" style="font-size: 104.6%; position: relative;"><mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mn class="mjx-n"><mjx-c class="mjx-c31"></mjx-c></mjx-mn></mjx-math><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>1</mn></math></mjx-assistive-mml><span aria-hidden="true" class="no-mathjax mjx-copytext">$1$</span></mjx-container> 이상 <mjx-container class="MathJax" jax="CHTML" style="font-size: 104.6%; position: relative;"><mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mi class="mjx-i"><mjx-c class="mjx-c1D441 TEX-I"></mjx-c></mjx-mi></mjx-math><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>N</mi></math></mjx-assistive-mml><span aria-hidden="true" class="no-mathjax mjx-copytext">$N$</span></mjx-container> 이하의 정수인 시리얼 번호가 적혀 있으며 서로 다른 티켓에는 서로 다른 시리얼 번호가 적혀있다.</p>
22+
23+
<p>티켓 중에서 시리얼 번호가 네 자릿수 이상이고 서로 다른 자리에서 네 개의 자릿수를 골라 고른 자릿수를 제외한 나머지 자릿수를 지울 때 2023을 만들 수 있으면 해당 티켓은 당첨 티켓이다. 예를 들어 시리얼 번호가 <u><strong>2023</strong></u>, 1<u><strong>2</strong></u>8<u><strong>0</strong></u>4<strong><u>23</u></strong>, <u><strong>2</strong></u>2<u><strong>0</strong></u>0<u><strong>2</strong></u>3<u><strong>3</strong></u>이면 당첨이고 3480, 572, 2032이면 꽝이다.</p>
24+
25+
<p><mjx-container class="MathJax" jax="CHTML" style="font-size: 104.6%; position: relative;"> <mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mi class="mjx-i"><mjx-c class="mjx-c1D441 TEX-I"></mjx-c></mjx-mi></mjx-math><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>N</mi></math></mjx-assistive-mml><span aria-hidden="true" class="no-mathjax mjx-copytext">$N$</span></mjx-container>이 주어졌을 때, 흑묘 복권의 당첨 티켓 수를 구하여라</p>
26+
27+
### 입력
28+
29+
<p>흑묘 복권의 티켓 수 <mjx-container class="MathJax" jax="CHTML" style="font-size: 104.6%; position: relative;"><mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mi class="mjx-i"><mjx-c class="mjx-c1D441 TEX-I"></mjx-c></mjx-mi></mjx-math><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>N</mi></math></mjx-assistive-mml><span aria-hidden="true" class="no-mathjax mjx-copytext">$N$</span></mjx-container>이 주어진다. <mjx-container class="MathJax" jax="CHTML" style="font-size: 104.6%; position: relative;"><mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mo class="mjx-n"><mjx-c class="mjx-c28"></mjx-c></mjx-mo><mjx-mn class="mjx-n"><mjx-c class="mjx-c31"></mjx-c></mjx-mn><mjx-mo class="mjx-n" space="4"><mjx-c class="mjx-c2264"></mjx-c></mjx-mo><mjx-mi class="mjx-i" space="4"><mjx-c class="mjx-c1D441 TEX-I"></mjx-c></mjx-mi><mjx-mo class="mjx-n" space="4"><mjx-c class="mjx-c2264"></mjx-c></mjx-mo><mjx-mn class="mjx-n" space="4"><mjx-c class="mjx-c31"></mjx-c><mjx-c class="mjx-c30"></mjx-c></mjx-mn><mjx-mstyle><mjx-mspace style="width: 0.167em;"></mjx-mspace></mjx-mstyle><mjx-mn class="mjx-n"><mjx-c class="mjx-c30"></mjx-c><mjx-c class="mjx-c30"></mjx-c><mjx-c class="mjx-c30"></mjx-c></mjx-mn><mjx-mstyle><mjx-mspace style="width: 0.167em;"></mjx-mspace></mjx-mstyle><mjx-mn class="mjx-n"><mjx-c class="mjx-c30"></mjx-c><mjx-c class="mjx-c30"></mjx-c><mjx-c class="mjx-c30"></mjx-c></mjx-mn><mjx-mo class="mjx-n"><mjx-c class="mjx-c29"></mjx-c></mjx-mo></mjx-math><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mo stretchy="false">(</mo><mn>1</mn><mo>≤</mo><mi>N</mi><mo>≤</mo><mn>10</mn><mstyle scriptlevel="0"><mspace width="0.167em"></mspace></mstyle><mn>000</mn><mstyle scriptlevel="0"><mspace width="0.167em"></mspace></mstyle><mn>000</mn><mo stretchy="false">)</mo></math></mjx-assistive-mml><span aria-hidden="true" class="no-mathjax mjx-copytext">$(1 \leq N \leq 10\,000\,000)$</span> </mjx-container></p>
30+
31+
### 출력
32+
33+
<p>당첨 티켓 수를 출력한다.</p>
34+

0 commit comments

Comments
 (0)