일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- github
- Codeforces
- selenium
- FastAPI
- 클린 코드
- Python
- github actions
- heroku
- pycharm
- Word Cloud
- 애드센스
- 프로그래머스 코딩테스트 연습
- 프로그래머스 월간 코드 챌린지 시즌1
- PostgreSQL
- 프로그래머스 코딩테스트 연습문제
- Spring Boot
- Firefox
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 프로그래머스 월간 코드 챌린지
- 디자인 패턴
- 파이썬
- 브랜디
- 바이오데이터 엔지니어
- c#
- PostgreSQL 설치 시 에러
- WPF
- terraform
- 스코페2021
- git
- 프로그래머스 코딩 테스트 연습
Archives
- Today
- Total
프로그래밍 연습하기
Nezzar and Lucky Number 본문
반응형
Codeforces Round #698 (Div. 2)
B. Nezzar and Lucky Number
https://codeforces.com/contest/1478/problem/B
문제 전문은 위 링크에서 확인하실 수 있습니다.
# https://codeforces.com/contest/1478/problem/B
def lucky(n, d):
if str(d) in str(n):
return True
else:
return False
n = int(input())
for _ in range(n):
q,d = [int(i) for i in input().split()]
arr = [int(i) for i in input().split()]
if d == 1:
for _ in range(len(arr)):
print("YES")
continue
for i in arr:
while i > 0:
if lucky(i, d):
print("YES")
break
else:
i = i - d
else:
print("NO")
유튜브의 강의를 참고하였습니다.
https://www.youtube.com/watch?v=DFsfAeFocKM
일단 d = 1일때는
1을 연속해서 더해서 모든 값을 나타낼 수 있기 때문에
모든 값에 YES가 나옵니다.
이외의 경우에는
10d 보다 큰 수가 나올 경우 lucky number의 합으로 만들 수 있어서
YES가 나옵니다.
예를 들면 d=7 일때
80,81...
73+7 74+7...
90,91...
73+17 74+17...
100,101...
73+27 74+27...
1000, 1001...
703+297, 704+297...
10d보다 작은 수의 경우 d를 빼가면서 검증해봅니다.
마찬가지로 d=7일때
69
62+7
55+7+7
48+7+7+7
41+7+7+7+7
34+7+7+7+7+7
27+7+7+7+7+7+7
25
18+7
11+7+7
6+7+7+7
d~9d의 합으로 나타낼 수 없다면
17 27 37 47 57 67로도 나타낼 수 없습니다.
1의 자리 수가 안맞기 때문에 10 20 30을 더해도 맞출 수 없습니다.
반응형
'Codeforces' 카테고리의 다른 글
Space Navigation (0) | 2021.02.06 |
---|---|
Suborrays (0) | 2021.02.04 |
Hotelier (0) | 2021.02.03 |
Wrong Subtraction (0) | 2021.02.03 |
Nezzar and Colorful Balls (0) | 2021.01.31 |
Comments