본문 바로가기
Algorithm/BOJ

[BOJ] 1436 | 영화감독 숌

by 밤초록 2022. 1. 6.
1436 | 영화감독 숌 | 실버 V
https://www.acmicpc.net/problem/1436

 

 

 

 

내 코드

 

 

N = int(input())

nums = []

i = 3
while sum(nums) < N:
    nums_len = 0 
    for left in range(i-3 + 1):
        print("i:", i)
        
        right = i-3-left
        print(left, right)
        if left == 0:
            left_nums = 1

        else:
            left_nums = 9 * (10**(left-1))

        right_nums = 10**right
        nums_len += left_nums * right_nums
        print("--------------------")
    print("xxxxxxxxxxxxxx")
    nums.append(nums_len)
    i += 1

con_nums = []

first_nums = list(range(1,10))
not_first_nums = list(range(0,10))

for left in range(i-3 + 1):
    right = i-3-left
    
    if left == 0:

    for left_first_num in first_nums:
        for right_num in not_first_nums:
            if left == 0

 

  • 매우 복잡하게 생각함
  • 조건 N 10,000 이하의 숫자로 범위가 작기 때문에 '666'이전, 이후에 들어갈 값을 계산하는 코드를 작성하려고 했으나 실패

 

 

 

 

이상 코드

 

N = int(input())

x = 666

while N:
    if '666' in str(x):
        N -= 1
    x += 1

print(x-1) 

 

  • '666' 자체가 str(x) 안에 있는지 계산하면 되는 아주 간단한 문제

 

 

학습

 

  • 무턱대고 문제부터 풀지 말고 여러가지로 문제에 접근하는 방법을 고민한 다음 풀기

 

반응형

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ][#] 1920 | 수 찾기  (0) 2022.01.24
[BOJ] 1918 | 후위 표기식  (0) 2022.01.21
[BOJ] 2846 | 오르막길  (0) 2022.01.19
[BOJ] 1929 | 소수 구하기  (0) 2022.01.13
[BOJ] 2609 | 최대 공약수와 최소 공배수  (0) 2022.01.04

댓글