![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/GdZDa/btryU1rKuLR/9vmmHFaykCDQA5DCwKggP1/img.png)
문제 백준 1920 - 수 찾기 코드 n = int(input()) n_list = list(map(int, input().split())) m = int(input()) m_list = list(map(int, input().split())) n_list.sort() def binary_search(value, start, end): if start > end : return False median = (start + end) // 2 if n_list[median] > value: return binary_search(value, start, median-1) elif n_list[median] < value: return binary_search(value, median+1, end) else: r..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/5pM7H/btryPqTDHdj/i4AdkDfy8pvB3oXJO22CsK/img.png)
문제 백준 9461 - 파도반 수열 코드 dp = [0] * 101 dp[1], dp[2], dp[3] = 1, 1, 1 # 1, 1, 1, 2, 2, 3, 4, 5, 7 # 점화식 dp[n+3] = dp[n] + d[n+1] # index[5]값 3은 index[2] + index[3]의 합이다. for index in range(1, 98): dp[index+3] = dp[index] + dp[index + 1] n = int(input()) for i in range(n): print(dp[int(input())])
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kWcLx/btrykAVC8Zn/e97wC1823MpzcIKttLRmq1/img.png)
문제 일반적인 동적 계획법 문제는 통상 코드 자체는 간결하므로, 가장 적은 경우의 수부터 계산을 해본 후, 패턴을 찾아 점화식을 세우는 것이 핵심! 백준 11726 - 2xn 타일링 코드 n = int(input()) dp = [0] * 1001 dp[1] = 1 dp[2] = 2 # 점화식 dp[n] = dp[n-1] + dp[n-2] for i in range(3, 1001): dp[i] = dp[i - 1] + dp[i - 2] print (dp[n] % 10007)
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/sHS1B/btrxkKsf6lj/p5pQg96I0LOF82iU2GkGJ1/img.png)
문제 J는 보석이며, S는 갖고 있는 돌이다. S에는 보석이 몇 개나 있을까? ₩대소문자는 구분₩한다. leetcode 771 - Jewels and Stones 코드 class Solution: def numJewelsInStones(self, J: str, S: str) -> int: freqs = {} count = 0 # 돌(S)의 빈도 수 계산 for char in S: # 처음이면 1 저장 if char not in freqs: freqs[char] = 1 else: # 이미 있으면 +1 freqs[char] += 1 # 보석(J)의 빈도 수 합산 for char in J: if char in freqs: count += freqs[char] return count 조금 더 파이썬스러운 코드 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/GvndU/btrxfvUSKun/uYsCKkI0e4MdUbg493JQa0/img.png)
문제 다음 연산을 제공하는 원형 데크를 디자인하라. MyCircularDeque(k): 데크사이즈를 k로 지정하는 생성자다. insertFront() : 데크 처음에 아이템을 추가하고 성공할 경우 true를 리턴한다. insertLast() : 데크 마지막에 아이템을 추가하고 성공할 경우 true를 리턴한다. deleteFromt() : 데크 처음에 아이템을 삭제하고 성공할 경우 true를 리턴한다. deleteLast() : 데크 마지막에 아이템을 삭제하고 성공할 경우 true를 리턴한다. getFromt() : 데크츼 첫 번째 아이템을 가져온다. 데크가 비어있다면 -1을 리턴한다. getRear() : 데크의 마지막 아이템을 가져온다. 데크가 비어있다면 -1을 리턴한다. isEmpty() : 데크가 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/5uqlK/btrwVsrbUVu/ssZJR1P7Ls81Kmjv8WxKFk/img.png)
문제 스택을 이용해 다음 연살을 지원하는 큐를 구현하라. push(x): 요소 x를 큐 마지막에 삽입한다. pop(): 큐 처음에 있는 요소를 제거한다. peek(): 큐 처음에 있는 요소를 조회한다. empty(): 큐가 비어 있는지 여부를 리턴한다. leetcode 232 - Implement Queue using Stacks 코드 class MyQueue: def __init__(self): self.input = [] self.output = [] def push(self, x: int) -> None: self.input.append(x) def pop(self) -> int: self.peek() return self.output.pop() def peek(self) -> int: # outp..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bFvo7J/btrwLhK9T3r/Hq46VjWqku7X0XDHptSuR0/img.png)
문제 스택을 이용해 다음 연산을 지원하는 큐를 구현하라. push(x) : 요소 x를 큐 마지막에 삽입한다. pop() : 큐 처음에 있는 요소를 제거한다. peek() : 큐 처음에 있는 요소를 조회한다. empty() ; 큐가 비어 있는지 여부를 리턴한다. leetcode 225 - Implement Stack using Queues 코드 class MyStack: def __init__(self): self.q = collections.deque() def push(self, x: int) -> None: self.q.append(x) # 요소 삽입 후 맨 앞에 두는 상태로 재정렬 # popleft : pop(0)과 같지만, O(1)의 시간복잡도를 가짐 // pop(0)은 O(n) # 1,2,3,4..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cg6qNH/btrvX8BaBm1/jCFdHKTwOSjcMWFd9jYy5K/img.png)
문제 프로그래머스 - 완주하지 못한 선수 코드 def solution(participant, completion): d = {} # 같은 이름이 존재하면 1을 더하고, 존재하지 않으면 0 저장 for x in participant: d[x] = d.get(x, 0) + 1 for x in completion: d[x] -= 1 dnf = [k for k, v in d.items() if v > 0] return dnf[0]
- Total
- Today
- Yesterday
- 노마드
- 코틀린
- mysql 8.0
- MySQL
- kotlin
- 정렬
- Real MySQL
- 알고리즘
- 구현
- 코테
- 데이터베이스
- 스프링
- 자료구조
- 김영한
- 노마드코더
- 인프런
- Algorithm
- Spring
- 스프링 부트
- 그리디
- spring boot
- 리팩토링
- 파이썬
- 문자열
- webflux
- 스프링부트
- 릿코드
- 북클럽
- 백준
- leetcode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |