목록백준 (30)
포도가게의 개발일지
1. 이분탐색을 이용한 수 찾기(정렬이 되있을 때 만 이진탐색이 가능하다) import sys def binary(start, end, target): global ans if abs(end - start) arr[mid]: binary(mid+1, end,target) num1 = int(sys.stdin.readline()) arr=..
1. Dfs stack을 이용 - 시간초과 import sys def dfs(graph, start_node): visit = [] stack = [] global count, maximum, level stack.append(start_node) while stack: node = stack.pop() if arr[node] > level: if node not in visit: if visit_check[node] == False: visit_check[node] = True visit.append(node) stack.extend(graph[node]) count += 1 if count > maximum: maximum = count return count if __name__ == '__main..
1. 시간초과 순열로 모든 경우의 수를 check해서 그런지 느리다 import sys def permutations(ref, n): ans = [] if n > len(ref): return ans if n == 1: for item in ref: ans.append([item]) elif n>1: for i in range(len(ref)): temp_ref = ref[:] temp_ref.remove(ref[i]) ## 순열의 정의에 따라 자유롭게 remove 메소드를 사용해도 되겠습니다. for p in permutations(temp_ref, n-1): ans.append([ref[i]]+p) return ans if __name__ == '__main__': city_num = int(sys...
29. 수 정렬 - 버블로 풀어봄 더보기 ##############버블 정렬 양 옆에 수를 비교해서 왼쪽이 크면 교환 반복횟수는 n-1번##################### ##############시간복잡도는 O(n²) for 안에 for, 공간복잡도는 O(n): 배열을 하나만 써서################## import sys n = int(sys.stdin.readline()) num = [] for x in range(n): tmp = int(sys.stdin.readline()) num.append(tmp) def swap(a,b): num[a], num[b] = num[b], num[a] for i in range(len(num)-1): for y in range(len(num)-1):..
23. 한수 찾기 한수란? 등차수열로 구성된 수 (홀수자리일때 양쪽합에 /2 == 가운데 수)(짝수 일땐 양쪽의 합치 같아야함) 더보기 import sys count = 0 tmp_arr = [] num = int(sys.stdin.readline()) if num>=100 : count += 99 check = str(num) length = len(check) for x in range(100,num+1): tmp_arr.append(x) for y in tmp_arr: y = str(y) #print(y, len(y)) if len(y) == 3: if (int(y[0])+int(y[2]))/2 == int(y[1]): count+=1 else: if(int(y[0])+int(y[3])) == (i..
5. 윤년 문제 if 사용법 알기 더보기 4번 문제 윤년 a = int(input()) if a%4 == 0: if a%100 == 0: if a%400 == 0: print("1") else: print("0") if a%100 != 0: print("1") else: print('0') 6. 직사각형 내부에서 최소 거리 찾기 더보기 x,y,w,h = map(int,input().split()) check_min = [x-0,w-x,y-0,h-y] print(min(check_min)) 7. 구구단 %d 사용법 알기 더보기 n = int(input()) for x in range(9): print('{0} * {1} = {2}'.format(n,x+1,n*(x+1))) 8. 배열 값 저장 append(..