10845:큐
https://www.acmicpc.net/problem/10845
DFS 풀이
- head, tail 을 둔다
- push
- head는 초기 추가된 노드를 계속 가르킴
- tail이 가르키느 노드는, 새로 추가된 노드를 가르킴
- tail은, 새로 추가된 노드를 가르킴
- pop
- head가 가르키는 노드가 가르키는 노드를 head가 가르킴
https://www.acmicpc.net/problem/10845
https://programmers.co.kr/learn/challenge_codes/144
소문자이면
대문자이면
공백
1 | 길이(i) 0 1 2 3 4 5 6 7 8 9 10 |
–> R1, R2, R3… 가 반복적으로 나옴 . 메모제이션 사용. 이전에 계산한 값들 저장.
https://programmers.co.kr/learn/challenge_codes/145
리스트의 값 중 최대값을 찾음
n이 0이 될때 까지, 그 최대값 -1
최종 제곱의 합을 출력
https://programmers.co.kr/learn/challenge_codes/152
두 수의 최소 공배수
두 수의 최대 공약수
![img](http://cfile27.uf.tistory.com/image/ 992E363359B0DF7D1A5547)
10 12 14 의 최소공배수
유클리드 알고리즘 (from 위키백과)
- 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘.
- 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b),
- a와 b의 최대공약수는 b와 r의 최대공약수와 같다.
- 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고,
- 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여
- 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다.
https://programmers.co.kr/learn/challenge_codes/153
한 칸을 오르는 방법 : 1
두 칸을 오르는 방법 : 2
세 칸을 오르는 방법
처음 한 칸 오르고 나머지 두 칸 오르는 방법
+ 처음 두 칸 오르고 나머지 한 칸 오르는 방법
네 칸을 오르는 방법
처음 한 칸 오르고 나머지 세 칸 오르는 방법
+ 처음 두 칸 오르고 나머지 두 칸 오르는 방법
f(1) =1 / f(2) =2 / … / f(n+2) = f(n+1) + f(n)
Dynamic Programming
피보나치 수열
https://www.acmicpc.net/problem/1406
스택 두개 생성. lStack, rStack
초기 입력 문자열 lStack에 모두 push
명령어 대로
왼쪽 스택 문자 하나하나 pop해서 rStack에 push
rStack 하나하나 pop 해서 출력
https://www.acmicpc.net/problem/10799
https://programmers.co.kr/learn/challenge_codes/170
79, 80, 81, 82, 83 ~ 차례대로
이진수로 바꿨을 때의 1 개수 count
78을 이진수로 바꿨을 때의 1 개수와 같은지 확인
1개수가 같은 순간의 숫자가 정답.