728x90 백준16 [python] 단계별로 풀어보기 - 11단계 브루트 포스 알고리즘(완전 탐색 알고리즘): 가장 간단한 알고리즘. 모든 경우의 수를 검사 하나하나 다 검사하다보니 시간적인 측면에서는 비효율적이지만 정확도가 100%임. 암호학에서는 가장 확실한 방법으로 통용 (ex) 숫자로만 구성된 4자리수 비밀번호를 풀 때, 0000 ~9999까지 모두 입력해보는 것) + 만들기 쉬운 알고리즘 + 문제의 복잡도에 매우 민감 11-1) 백준 2798번: 블랙잭 arr =[] a, b = map(int, input().split()) arr = list(map(int, input().split())) result = 0 for i in range(a): for j in range(i+1, a): for k in range(j+1, a): if arr[i] + a.. 2021. 5. 6. [python] 단계별로 풀어보기 - 10단계 전반적으로 풀이과정이 거의 유사하다 재귀함수에 대한 문제인데, 재귀함수는 정의 단계에서 자신을 재참조하는 함수이다. 그래서 식에 맞게 함수만 잘 선언해주면 바로 해결할 수 있는 단계! 10-1) 백준 10872번: 팩토리얼 def factorial(num): if num == 0: return 1 return num*factorial(num-1) n = int(input()) print(factorial(n)) n! = n*(n-1)*(n-2)*(n-3) ... 10-2) 백준 10870번: 피보나치 수5 def fibonacci(num): if num == 0: return 0 elif num == 1: return 1 return fibonacci(num-1)+fibonacci(num-2) n = .. 2021. 5. 1. [python] 단계별로 풀어보기 - 9단계(7~11) 지난번에 덜 푼 문제 이어풀기 9-7) 백준 1085번: 직사각형에서 탈출 x,y,w,h = map(int, input().split()) a = [] a.append(x) a.append(y) a.append(w-x) a.append(h-y) print(min(a)) 그려진 사각형을 벗어나는 수 중 최솟값을 구하기 9-8) 백준 3009번: 네 번째 점 a = [] b = [] for i in range(3): x,y = map(int, input().split()) a.append(x) b.append(y) for i in range(3): if a.count(a[i]) ==1: x = a[i] if b.count(b[i]) ==1: y = b[i] print(x,y) 보통 직사각형이 (a,b),.. 2021. 5. 1. [python] 단계별로 풀어보기 - 9단계(1~6) 8단계가 어려워서 9단계 먼저 풀기 ! 사실 9단계 문제도 많아서 나눠서 풀기! 9-1) 백준 1978번: 소수 찾기 M = int(input()) a = list(map(int, input().split())) num_count = 0 for i in a: count = 0 if i == 1: continue for j in range(2, i+1): if i % j == 0: count += 1 if count == 1: num_count += 1 print(num_count) 수를 입력받아 리스트에 저장하고, 반복문을 통해 수를 하나하나 꺼내보며 소수인지 아닌지 구분한다. 소수는 1과 자기 자신만으로만 나눠지는 수이므로, 2부터 자신에 해당하는 수까지 반복하며 나눠서 나머지가 0이라면 count +.. 2021. 5. 1. [python] 단계별로 풀어보기 - 7단계 쉬운 문제는 쉬웠고 몇몇 문제는 조금 생각해야하는 문제들로 이루어진 단계! 7-1) 백준 11654번: 아스키 코드 a = input() print (ord(a)) 문자열을 아스키코드로 반환: ord() 아스키코드를 문자열로 반환: chr() 7-2) 백준 11720번: 숫자의 합 a = input() b = list(map(int, input()))//수 하나하나를 리스트에 저장 print(sum(b))//리스트 속에 있는 수들 합 7-3) 백준 10809번: 알파벳 찾기 a = input() result = list(range(97,123)) for i in result: print(a.find(chr(i)), end = ' ') chr함수를 사용해서 아스키코드를 문자열로 반환하고, find함수를 사.. 2021. 4. 29. 이전 1 2 3 4 다음 728x90