본문 바로가기
728x90

전체 글75

[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.
[Python] 정렬 문법 정리(sort, sorted, reverse, 길이순 정렬, 2차원 리스트 정렬) 나중에 내가 보려고 적는 기초 문법 정리 sort와 sorted함수의 차이점 sort(): 이 메소드는 리스트를 정렬된 상태로 변경. sorted(): 기존의 리스트를 변경하는 것이 아니라 정렬된 새로운 리스트를 반환한다. ​ +sort 정렬의 기본값은 오름차순 +sorted는 새로운 배열을 만들었다는 점 빼고 모두 sort와 동일. 따라서 뒤에서는 sorted로만 예시를 들었지만, sort로도 동일하게 사용 가능 a = [4,5,1,2,8] a.sort() print(a) #출력값 = [1, 2, 4, 5, 8] 리스트 a를 숫자 순서대로 정렬해서 반환 ​ ​ ​ ​ a = [4,5,1,2,8] a.sort(reverse = True) print(a) #출력값 = [8, 5, 4, 2, 1] rever.. 2021. 4. 26.
[python] 단계별로 풀어보기 - 6단계 뭔가 문제 푸는 방법이 어렵다기보다는 문제를 이해하는게 더 어렵다 코딩 잘할라면 국어도 잘해야하남.. 6-1) 백준 15596번: 정수 N개의 합 def solve(a): return sum(a) 이 문제는 언어가 제한되어있는데 내가 만약 채점할 수 없는 언어 쓰는 사람이면 좀 속상할 것 같다 왜냐면 저기 있는 문제 다 풀어야지 저 단계 다 풀었다는 표시 뜨니까 ㅠ 6-2) 백준 4673번: 셀프 넘버 def d(n): result = n while n != 0: result += n%10 n //= 10 return result a = [] for i in list(range(1,10001)): a.append(d(i)) if i not in a: print(i) 셀프 넘버가 아닌 수를 먼저 리스트 a.. 2021. 4. 26.
[python] 단계별로 풀어보기 - 5단계 다른 언어로 풀라면 금방 풀 수 있을 것 같은데 생소한 파이썬이라 오래걸렸다. 그리고 아직 제대로 이해도 못한 것 같다... 그런데 풀면서 느낀건 파이썬은 기본으로 제공해주는 함수가 많은 것 같다 min, max함수, set함수는 진짜 편한 것 같다!!! 나중에 꼭 파이썬을 능숙하게 쓸줄 아는 사람이 되고싶다 5-1) 백준 10818번: 최소, 최대 a = int(input()) b = list(map(int, input().split()))//정수를 공백으로 구분해서 입력받아, list에 넣어주기 print(min(b),max(b))//리스트의 수 중에 min값, max값 출력 5-2) 백준 2562번: 최댓값 a= [] for i in range(9)://9번 반복문 돌며 값 입력받아, 배열에 넣어주.. 2021. 4. 26.
[python] 단계별로 풀어보기 - 4단계 사실 코딩할때 while문을 굉장히 쓰지 않는 편이고, while의 조건문을 true로 둔 뒤, 코딩을 하는 경우는 정말 적었다. 그래서 생소했지만 아직 4단계여서 문제가 조금은 단순해서 해결가능했다. 앞으로 다양한 방식으로 문제를 풀어봐야할 것 같다. 4-1) 백준 10952번: A+B-5 while True: a,b = map(int, input().split())//a,b를 한줄에 각각 입력받기 if a == 0 and b==0://a,b 모두 0이면 반복문 중단 break else://아니라면 a+b값 출력 print(a+b) 4-2) 백준 10951: A+B-4 while True: try: a,b = map(int, input().split()) print(a+b) except: break 아.. 2021. 4. 26.
728x90