분류 전체보기
[백준]1966-프린터 큐
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net times = int(input()) result = [] for _ in range(times): size,point = map(int,input().split()) pri = list(map(int,input().split())) count = 0 while(True): maxindex = pri.index(max(pri)) if(maxindex == point): result.append(cou..

[백준]2609-최대공약수와 최소공배수 구하기
https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net x,y=map(int,input().split()) def gcd(x,y): mod =1 if(y>x): x,y=y,x while(mod!=0): mod = x%y x=y y=mod return x def lcm(x,y): a=x*y/gcd(x,y) return int(a) print(gcd(x,y)) print(lcm(x,y)) # 유클리드 호제법 유클리드 호제법은 최대공약수를 구하기 위한 방법이다. 우리가 일반적으로 구할 때는 주로 소인수분해를 통해서 하지만 ..
[백준]11651-좌표 정렬하기2
https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net num = int(input()) inp=[] for _ in range(num): x,y = map(int,input().split()) inp.append([x,y]) inp.sort(key = lambda x: (x[1],x[0])) for i in inp: print(i[0],i[1]) # map함수 map(적용할 함수,적용할 값들(..
[백준]10773-제로
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net num = int(input()) stack = [] for _ in range(num): inp = int(input()) if(inp == 0): stack.pop() else: stack.append(inp) print(sum(stack))
[백준]1181-단어 정렬
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net num = int(input()) words = [] for i in range(num): words.append(input()) words=list(set(words)) words.sort() words.sort(key=len) for i in words: print(i) # sort함수 List.sort(key = , reverse = ,) sort는 리스트형 함수로 원본 리스트를 ..

강화학습(Reinforcement Learning) - 3.DQN
# 1. Deep Q network 우선, 지금까지 봤던 Q-learning과 DQN을 비교하면 다음과 같다. Q-Learning에서는 Q-Table을 업데이트 하는 방식으로 Input으로 {State,Action} Pair이 들어오면 그거에 대한 Q-value값을 return했다. 하지만, 이러기에는 State와 Action개수가 많아지면 Q-Table을 관리하기란 불가능에 가깝게 될뿐더러 시간도 오래걸리게 된다. 그리고 경험하지 못한 것에 대한 값은 알 수가 없다.따라서, Q-Learning에서 Q-Table 대신 Neural Network를 사용해서 Q-value를 추정해보는 게 DQN이다. # 2. Naive DQN Neural Network를 학습시키기 위해서는 Loss Function이 필요한..