6 : 브루트포스

이제 단계별로 게시물을 끊어야겠다
브루트포스 첫번째 블랙잭문제는 이전 포스터에 있으므로 그 다음 문제부터 진행하겠다.

2231 : 분해합

num = int(input())

BunHaeHap = 0 #분해합 

for i in range(1,num+1):
    con = list(map(int,str(i))) #i의 각자리수 리스트에 삽입 
    BunHaeHap = i + sum(con) # 분해합 
    if BunHaeHap == num :
        print(i)
        break
    if i==num:
        print(0)

부르트포스는 Brute Force 즉 그냥 무식하게 모든 케이스를 다 고려해보고 푸는 문제이므로 단순무식하게 접근하면된다.

배운점

con = list(map(int,str(i))) #i의 각자리수 리스트에 삽입 

이 방식으로 숫자의 각요소별로 리스트를 작성할 수 있다.
이와 같이 말이다 !

1436 : 영화감독 슘

n = int(input())
count = 0 
sixsixsix= 666
while True:
    if '666' in str(sixsixsix):
        count+=1
    if count == n:
        print(sixsixsix)
        break
    sixsixsix+=1

처음에는 666,1666,2666,3666,4666,5666,6666,7666 이 순으로 생각하고 풀어서 틀렸는데
다시 생각해보니 6666아래에 6660,6661,6662... 가 있다.

즉 순차적으로 666에 올라가면서 숫자를 붙으면서 접근하는게 아니라 666부터 올라가면서 문자열로 변형 후 안에 666이 포함되어 있다면 count를 올리는 방식으로 접근하여 count 와 n이 동일하게 된다면 sixsixsix변수를 출력하게 했다.

7568 : 덩치

test = int(input())
arr = []
for i in range(test):
    x, y = map(int,input().split())
    arr.append((x,y))

for i in arr: #리스트 직접접근 
    count = 0
    for j in arr:
        if i[0]<j[0] and i[1] < j[1]:
            count+=1
    print(count+1,end =' ')     

리스트로의 직접접근,,,을 익히자,,,아자아자,,,, 힝 ,,,.

# for i in range(num):
#     x, y = map(int,input().split())
#     all_list[i][0] = x
#     all_list[i][1] = y

# for i in range(num):
#     count = 0
#     for j in range(num):
#         if all_list[i][0]<all_list[j][0] and all_list[i][1]<all_list[j][1] :
#             count += 1
#     print(count+1,end=' ')

이 코드는 왜 안될까 젠쟝 ...

좋은 웹페이지 즐겨찾기