Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- centos pyhon 설치
- semanage
- influxdb 설치
- CentOS7
- 1697
- linux시간으로 변경
- g++ 업데이트
- 정규식 문자열 출력
- c++ 정규식
- c3 축 가리기
- c3 step graph
- python os
- snmp
- grafana dashboard
- subporcess path
- python popen
- gcc 업데이트
- 백준
- InfluxDB
- c3 초
- python subprocess
- c3 축 없애기
- 정규식 컴파일
- telegraf
- snmp test
- 정규식 활용
- regex_search
- c3 second
- selinux port 등록
- gcc regex
Archives
- Today
- Total
리셋 되지 말자
[백준 1436] 영화감독 숌 - 브루트포스 본문
코드1
from collections import Counter
n = int(input())
cnt = 0
num = 1
while cnt != n:
ls = list(str(num))
cd = Counter(ls)
if cd.get('6') and cd['6'] >= 3:
idx_save = []
for idx, c in enumerate(ls):
if c == '6':
idx_save.append(idx)
start = idx_save[0]
cnt_6 = 0
for i in range(1, len(idx_save)):
if start+1 == idx_save[i]:
cnt_6 += 1
start = idx_save[i]
if cnt_6 == 2:
cnt+=1
else:
start = idx_save[i]
cnt_6 = 0
num += 1
print(num-1)
결과
설명
- num을 1부터 1씩 증가시키면서 검사를 시작한다. 사실 666부터 시작해도 된다.
- num을 str()로 문자열로 변경한 뒤, list()로 llist로 변경한 뒤, Counter로 만든다. 그리고 6이 있는지, 있다면 6이 3개 이상인지 확인한다.
- num이 6을 3개 이상 가지고 있다면, 이제 모든 6의 위치 index를 idx_save에 저장한다.
- idx_save를 검사를 하는데, 연속된 3개의 수(수:6의 위치 index)가 있는지 검사한다. 만약 연속된 3개가 있다면 cnt를 1 증가시킨다.
- cnt가 n과 같아질 때까지 반복한다.
후기
666을 가운데에 두고, 양쪽에 숫자를 1씩 증가시키면서 붙이는 방법을 생각했었는데 잘 되지않아서 그냥 브루트 포스로 변경했다.
코드2
n = int(input())
cnt = 0
num = 1
while cnt != n:
if '666' in str(num):
cnt += 1
num += 1
print(num-1)
결과
간단하게 풀 수 있는 문제였다...
'알고리즘' 카테고리의 다른 글
[백준 1929] 소수 구하기 - 에라토스테네스의 체 (0) | 2021.12.27 |
---|---|
[백준 10250] ACM 호텔 - 수학, 구현, 사칙연산 (0) | 2021.12.23 |
[백준 2751] 수 정렬하기 - sys.stdin.readline (0) | 2021.12.22 |
[백준 2798] 블랙잭 - combinations (0) | 2021.12.22 |
[백준 2231] 분해합 - 브루트포스 (0) | 2021.12.22 |
Comments