본문 바로가기

알고리즘 문제65

정렬 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # 선택 정렬 코드 array = [7,5,9,0,3,1,6,2,4,8] for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i+1, len(array)): if(array[min_index]>array[j]): min_index =j array[i], array[min_index] = array[min_index] , array[i] # 스와프 print(array) # 삽입 정렬 코드 for i in range(len(array)): for j in range(i, 0, -1): if array[j] =end: # 원소가 .. 2020. 10. 21.
DFS/BFS 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 # 음료수 얼려 먹기 n,m = map(int,input().split()) graph =[] for i in range(n): graph.append(list(map(int,input()))) print(graph) #DFS 로 특정한 노드를 방문한 뒤에 연결된 모든 노드들도 방문 def dfs(x,y): # 주어진 범위를 벗어나는 경우에는 즉시 종료 if x=n or y=m: return False; # 현재 노드를 아직 방문하지 않았다면 if graph[x][y] == 0: graph[x][y] = 1 # 상, 하, 좌.. 2020. 10. 21.
DFS(Depth First Search)/BFC(Breadth First Search) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 def recursive(i): if i == 100: return print(i,'번째 재귀함수에서', i+1, '번째 재귀함수를 호출') recursive(i+1) print(i,'번째 재귀함수를 종료') # recursive(1) def factorial(n): if n 2020. 10. 21.
구현 상하좌우(좌표문제는 표를한번그려보자 x,y 증가폭이헷갈림) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # N 입력받기 n = int(input()) x, y = 1, 1 plans = input().split() # L, R, U, D에 따른 이동 방향 dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] move_types = ['L', 'R', 'U', 'D'] # 이동 계획을 하나씩 확인 for plan in plans: # 이동 후 좌표 구하기 for i in range(len(move_types)): if plan == move_types[i]: nx = x + dx[i] ny = y + dy[i] # 공간.. 2020. 10. 19.
그리디 Greedy(탐욕법) - 현재상황에서 지금 당장 좋은 것만 고르는 방법! 1 2 3 4 5 6 7 8 9 10 11 12 13 # 거스름돈 # 파이썬 n = 1260 count = 0 # 큰 단위의 화폐부터 차례대로 확인하기 coin_types = [500, 100, 50, 10] for coin in coin_types: count += n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기 n %= coin print(count) Colored by Color Scripter cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 큰수의 법칙 n,m,k = map(int, input().split()) data .. 2020. 10. 19.