Algorithm 7

최단거리&다익스트라 알고리즘 개념

최단거리 알고리즘 최단거리 알고리즘은 지하철 노선도, 네비게이션 등 다방면에 사용되는 알고리즘 다익스트라 최단 경로 알고리즘 플로이드 워셜 알고리즘 벨만 포드 알고리즘 다익스트라 알고리즘 그래프에서 여러 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘 음의 간선이 없을 때 정상적 작동 GPS 소프트웨어의 기본 알고리즘 기본적으로 그리디 알고리즘으로 분류 출발 노드와, 도착 노드를 설정 알고 있는 모든 거리 값을 부여 출발 노드부터 시작하여, 방문하지 않은 인접 노드를 방문, 거리를 계산한 다음, 현재 알고있는 거리보다 짧으면 해당 값으로 갱신한다. 현재 노드에 인접한 모든 미방문 노드까지의 거리를 계산했다면, 현재 노드는 방문한 것이므로, 미방문 집합에서..

Algorithm/개념 2022.05.05

다이나믹 프로그래밍 개념과 예제

다이나믹 프로그래밍 동적할당의 다이나믹과는 다른 개념 큰 문제를 작은 문제로 나눌 수 있다 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일하다 메모이제이션 기법→ 한 번 구현한 결과를 메모리 공간에 메모해두고 같은 식을 다시 호출하면 메모한 결과를 그대로 가져오는 기법 캐싱이라고도 함 재귀함수를 사용하여 소스코드를 작성하는 방법→ 탑다운방식 반복문을 이용하여 소스코드를 작성하는 방법→ 보텀업방식 1로만들기 x=int(input()) d=[0]*(x+1) for i in range(2,x+1): d[i]=d[i-1]+1 if i%2==0: d[i]=min(d[i],d[i//2]+1) if i%3==0: d[i]=min(d[i],d[i//3]+1) print(d[x]) 개미전사 n=int(in..

Algorithm/개념 2022.05.04

BOJ 단지번호 붙이기 (음료수 얼려먹기 대체) DFS 알고리즘

N=int(input()) map=[list(map(int,input()))for i in range(N)] ans=[] def dfs(x,y): if x=N or y=N: return False if map[x][y]==1: map[x][y]=2 dfs(x-1,y) dfs(x,y-1) dfs(x+1,y) dfs(x,y+1) return True return False prev=0 cnt=0 for i in range(N): for j in range(N): if dfs(i,j)==1: now=0 cnt+=1 for k in range(N): now+=map[k].count(2) now-=prev ans.append(now) prev+=now ans.sort() print(len(ans)) for i i..

Algorithm/BOJ 2022.05.03

기본정렬알고리즘(선택정렬, 버블정렬, 삽입정렬)

손코딩으로 나오거나 정보처리기사에서도 자주 나오는 기본 정렬 알고리즘 https://www.toptal.com/developers/sorting-algorithms Sorting Algorithms Animations Animation, code, analysis, and discussion of 8 sorting algorithms on 4 initial conditions. www.toptal.com 위 사이트에서 알고리즘이 어떤 방식으로 진행되는지, 속도는 대략 어느 정도인지 한눈에 살펴볼 수 있다. 선택정렬 public static void main(String[] args) { //selection sort int[]num=new int[] {25,15,10,5,12,9,17,23,13,19};..

Algorithm/개념 2021.07.12

백준 4796번 캠핑(파이썬)

문제 등산가 김강산은 가족들과 함께 캠핑을 떠났다. 하지만, 캠핑장에는 다음과 같은 경고문이 쓰여 있었다. 캠핑장은 연속하는 20일 중 10일동안만 사용할 수 있습니다. 강산이는 이제 막 28일 휴가를 시작했다. 이번 휴가 기간 동안 강산이는 캠핑장을 며칠동안 사용할 수 있을까? 강산이는 조금 더 일반화해서 문제를 풀려고 한다. 캠핑장을 연속하는 P일 중, L일동안만 사용할 수 있다. 강산이는 이제 막 V일짜리 휴가를 시작했다. 강산이가 캠핑장을 최대 며칠동안 사용할 수 있을까? (1 < L < P < V) 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개..

Algorithm/BOJ 2021.07.11

그리디알고리즘

그리디 알고리즘 당장 좋은 것-이득인 것 먼저 선택 큰 수의 법칙 n,m,k=map(int,input().split()) data=list(map(int,input().split())) data.sort() f=int(data[n-1]) s=int(data[n-2]) result=0 while True: for i in range(k): if m==0: break result+=f m-=1 if m==0: break result+=s m-=1 print(result) 횟수 계산해서도 풀이 가능 n,m,k=map(int,input().split()) data=list(map(int,input().split())) data.sort() f=int(data[n-1]) s=int(data[n-2]) result..

Algorithm/개념 2021.07.10
반응형