일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- XML주석
- 디피
- 영어말하기
- 바텀업
- XML
- 오픽
- 이진탐색 #나무 자르기
- 오픽공부법
- stack 스택
- ㅂ
- dp
- 다이나믹프로그래밍
- 안드로이드
- English
- 탑다운
- 오픽노잼공부방법
- 오픽가격
- fibo
- 주석
- topdown
- 이진탐색
- 영어회화
- 메모이제이션
- 오픽노잼
- opic
- 오픽점수잘받는방법
- 안드로이드주석
- 피보나치수열
- dynamicProgramming
목록분류 전체보기 (298)
RUBY
출처:: programmers.co.kr/learn/courses/30/lessons/42578?language=python3 분류:: 해시 1. 문제 이해 및 해결과정 1) 해시 1. dict= {'옷의 종류' : '옷1','옷2' } 형태로 담는다 2. 경우의 수는 [각 종류별로 있는 옷의 수 + 1 (그 옷을 선택하지 않는 경우) ] 를 각 종류 마다 곱해주고 모두 선택되지 않는 경우는 없으므로 -1을 해준다 -> 모자 종류:2 목거리:3 상의:4 라고 가정하면, ( 2+1 ) * ( 3 + 1) * ( 4 +1 ) = 3*4*5 - 1(모두선택하지않을 때) 로 계산하면 된다 2. 풀이방법 1. [python] 해시 - dict => 옷의 종류 : 옷 1, 옷2 def solution(clothes..
출처:: programmers.co.kr/learn/courses/30/lessons/12905?language=python3 분류:: 완전탐색, dp 1. 문제 이해 및 해결과정 1) dp - O(n^3)로 완탐하면 시간초과 발생가능성이 있으므로, dp를 고려함 - dp는 만들 수 있는 최대 직사각형의 크기 - board[i][j]가 1일 경우에만, dp = min(board[i-1][j-1],board[i][j-1],board[i-1][j]) + 1 2. 풀이방법 1. dp def solution(board): h=len(board) #세로 w=len(board[0]) #가로 for i in range(1,h): for j in range(1,w): board[i][j]=min(board[i-1][j..
출처:: programmers.co.kr/learn/courses/30/lessons/42577 분류:: 해시 1. 문제 이해 및 해결과정 1. 정렬 - phone_book을 정렬하면, 12 123,1234 와 같이 정렬된다. - 리스트 내에서, 앞의 수와 뒤의 수 끼리만 확인하면 된다 2. 풀이방법 1. [ python ] 정렬 - 생각해보니 이 풀이는 ["146","2146"]의 경우는 통과되면 안되는데 이것이 답이 되었다. --???? - 이 테스트케이스는 포함하는 경우이기 때문이다 - 접두사해 포함해야 하므로 아래 풀이는 틀린 풀이이다 def solution(phone_book): phone_book.sort() #정렬을 하게되면, 앞뒤의 숫자만 비교하면 된다 for i in range(len(p..
출처:: programmers.co.kr/learn/courses/30/lessons/42747# 분류:: 정렬 1. 문제 이해 및 해결과정 1) 이분탐색 - 이분탐색으로 풀이하였다. - 테스트케이스 16에서 실패했었는데, [0,1,1] 1 을 고치니 해결이 되었다 -> hindex함수에서 index의 초기값때문에 if len(citations)-index>=mid 가 참이 나올 수 있는 경우 때문이였다. 초기 index를 10000으로 설정해주어서 해결 - ex) [3 0 6 1 5] -> (정렬) [ 0 1 3 5 6 ] -> len=5 이므로 mid가 2부터 시작 , 3>=2 이므로, index=2 이고, 5-2 >= 2 이므로 ,True s+e = 3+5 //2 = 4, mid=4, 5>=4 이므..
출처:: programmers.co.kr/learn/courses/30/lessons/42885# 분류:: 그리디 1. 문제 이해 및 해결과정 2. 풀이방법 1. 투포인터 def solution(people, limit): people.sort() #정렬 cnt=0 #필요한 최소 구명보트의 개수 i=0 #왼쪽에서 시작 j=len(people)-1 #오른쪽에서 시작 while i 큰쪽만태움 j-=1 return cnt 3. 오답원인 4. 알게된 점
출처:: programmers.co.kr/learn/courses/30/lessons/42587 분류:: 스택,큐 1. 문제 이해 및 해결과정 1. 파이썬에서 pop(0)이 O(n)임을 고려해 deque를 쓰자고 생각함 2. 풀이방법 1. 큐 from collections import deque def solution(priorities, location): cnt=0 #몇번째로 인쇄되는가 q=deque([(value,i) for i,value in enumerate(priorities)]) while q: cur=q.popleft() if q and cur[0]
출처:: programmers.co.kr/learn/courses/30/lessons/42626# 분류:: 힙 1. 문제 이해 및 해결과정 2. 풀이방법 1. [ python ] heap - heap을 이용하면 따로 정렬하는 과정이 필요없음 import heapq def solution(scoville, K): cnt = 0 hq=[] for x in scoville: #힙큐 heapq.heappush(hq,x) #정렬과정이 필요없음 while hq: if hq[0]>=K: #현재힙에서 제일 작은수가 k보다 크면 break elif len(hq)==1: #힙의 길이가 1이면, 원소 2개를 뺄 수 없음 return -1 else: b=heapq.heappop(hq) #힙구조에서 제일작은 수 빼기 a=hea..
출처:: programmers.co.kr/learn/courses/30/lessons/42839 분류:: 완전탐색 1. 문제 이해 및 해결과정 1. 1) 소수를 미리 찾아놓음 2) 입력받은 수에서 가능한 모든 경우 찾아둠 3) 가능한 수가 소수면 개수 count 2. 풀이방법 1. 에라토스테네스의 체 + 순열 import math from itertools import permutations def solution(numbers): cnt=0 max=10000000 #소수를 미리 찾아놓음 - 에라토스테네스의체 이용 prime=[True]*max prime[0],prime[1]=False,False for i in range(2,int(math.sqrt(max))+1): j=2 if prime[i]: wh..