본문 바로가기

알고리즘31

DFS/BFS 1. 스택 예제 stack=[] stack.append(5) stack.append(3) stack.append(2) stack.pop() print(stack) #최하단 원소부터 출력한다. print(stack[::-1]) #최상단 원소부터 출력한다. 2. 큐 예제 from collections import deque #큐 구현을 위해서 deque 라이브러리 사용 queue=deque() queue.append(5) queue.append(3) queue.append(2) queue.append(7) queue.popleft() #큐는 선입선출이다. print(queue) #먼저 들어온 순서대로 출력 queue.reverse() #역순으로 바꾼다. print(queue) 3. 재귀함수 예제 def re.. 2021. 7. 6.
구현 1. 상하좌우 # 상하좌우 #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] # 공간을 벗어나면 무시한다. if nxn: continue #이동한다. x,y=nx,ny print(x,y) 2. 시각 #시각 #H를 입력받는다.(시간) h=int(input()) count=0 for i in .. 2021. 7. 5.
코테 공부- 그리디 알고리즘 1. 거스름돈 세기 #거스름돈 세기: 그리디 알고리즘 n=1260 #현재 남아있는 잔돈, 나누어야 하는 잔돈 count=0 # 큰 단위의 화폐부터 차례대로 확인하는 그리디 알고리즘 적용 coin=[500,100,50,10] #500원, 100원, 50원, 10원 for num in coin: #coin의 각 항목 num에 대하여 count+=n//num # 해당하는 화폐로 거슬러 줄 수 있는 동전의 갯수를 센다. n%=num print(count) 2. 큰 수의 법칙 - 일반적인 방법 #큰 수의 법칙 #N,M,K를 공백으로 구분하여 입력받기 n,m,k=map(int,input().split()) #N개의 수를 공백으로 구분하여 입력받기 #여기서 N는 배열의 크기이고, M은 숫자가 더해지는 횟수, K는 연.. 2021. 7. 3.