일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- opic
- 피보나치수열
- 영어회화
- 오픽공부법
- 오픽노잼
- 오픽점수잘받는방법
- 오픽노잼공부방법
- dp
- XML주석
- 주석
- 이진탐색
- 디피
- 탑다운
- 영어말하기
- 이진탐색 #나무 자르기
- 안드로이드
- 바텀업
- 다이나믹프로그래밍
- dynamicProgramming
- 안드로이드주석
- English
- XML
- 오픽가격
- 메모이제이션
- stack 스택
- fibo
- ㅂ
- topdown
- 오픽
목록분류 전체보기 (298)
RUBY
출처:: programmers.co.kr/learn/courses/30/lessons/12939?language=python3 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. [ python ] def solution(s): n=[] n=list(map(int,s.split(" "))) return str(min(n))+" "+str(max(n)) 3. 오답원인 4. 알게된 점
출처:: programmers.co.kr/learn/courses/30/lessons/12913 분류:: dp 1. 문제 이해 및 해결과정 2. 풀이방법 1. [python] dp def solution(land): for i in range(len(land) - 1): land[i + 1][0] = max(land[i][1], land[i][2], land[i][3]) + land[i+1][0] #i+1행 0열의 최대값(자신의 열 제외) land[i + 1][1] = max(land[i][0], land[i][2], land[i][3]) + land[i+1][1] land[i + 1][2] = max(land[i][0], land[i][1], land[i][3]) + land[i+1][2] land[i..
출처:: programmers.co.kr/learn/courses/30/lessons/12941 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. zip함수이용 def solution(A,B): answer = 0 A=sorted(A) B=sorted(B,reverse=True) answer=sum([a*b for a,b in zip(A,B)]) return answer - 거꾸로 생각해보자 2. def solution(A,B): answer = 0 A=sorted(A) B=sorted(B,reverse=True) for i in range(len(A)): answer+=A[i]*B[i] return answer 3. 오답원인 4. 알게된 점
출처:: programmers.co.kr/learn/courses/30/lessons/12911 분류:: 구현 1. 문제 이해 및 해결과정 2. 풀이방법 1. [python] count함수 이용 def two_digit(num): result="" while num>0: remainder=num%2 num=num//2 result=str(remainder)+result return result def solution(n): answer = 0 digit=two_digit(n) onecnt=digit.count('1') i=n+1 while True: tmp=two_digit(i) tmpcnt=tmp.count('1') if onecnt==tmpcnt: return i i+=1 return answer 2..
출처:: programmers.co.kr/learn/courses/30/lessons/12909?language=python3 분류:: 스택 1. 문제 이해 및 해결과정 괄호 문제는 3가지 케이스로 나뉜다 1. 현재가 ( 일 경우 -> 무조건 stack에 더함 2. 현재가 ) 이면서 이전것이 (일 경우 -> stack.pop() =>괄호의 균형이 맞으므로 뺌 ( 3. 현재가 ) 이면서 이전것이 없거나 )일 경우 -> stack에 현재 추가 stack에 무언가 남아있다면 균형잡힌 괄호가 아니라는 뜻이다. 2. 풀이방법 1. 스택 def solution(s): stack=[] for x in s: if x=='(': stack.append('(') else: if stack and stack[-1]=='('..
출처:: programmers.co.kr/learn/courses/30/lessons/42860 분류:: 그리디 1. 문제 이해 및 해결과정 1) 상하 - 알파벳 바꾸는 과정 2) 좌우 - 어떤 알파벳을 바꿀지 1번과 2번의 과정이 필요하다. -> 1번은 쉽게 해결되었지만 2번이 왜 필요한지 이해가 되지 않았다. 2번의 예시는 CAAAAACCC -> 이것을 빠르게 좌우 해결하는 방법은 첫번째 C에서 오른쪽으로 가는 것이 아니라, C에서 바꾸고, 왼쪽으로 가면 마지막문자인 C로 이동함 -> 오른쪽에서 왼쪽으로 해결 2. 풀이방법 1. def solution(name): res=0 #답, 알파벳변화 + 커서 이동 #알파벳의 횟수 # A ~ N, N~ZA 중에 작은 수를 이동시키기 moveAlpha= [ mi..
출처:: programmers.co.kr/learn/courses/30/lessons/42842?language=python3 분류::완전탐색 1. 문제 이해 및 해결과정 - 주어진 것 : brown 개수와 yellow 개수 - 구하려는 것 : 가로, 세로 (단, 가로의 길이는 세로길이보다 같거나 크다) - 유추할 수 있는 것 : 테두리는 가로 세로 각각 2줄을 차지함 / (가로 -2 ) * (세로-2) = yellow / 전체 사각형 = brown + yellow 1. 가로, 세로는 전체 넓이의 약수이므로 약수들을 구한다. 2. 약수중에 (가로 -2 ) * (세로-2) = yellow 를 만족하는 것을 찾자 2. 풀이방법 1. [ python ] 수학 def solution(brown, yellow):..
출처::월간 코드 챌린지, programmers.co.kr/learn/courses/30/lessons/68936?language=python3 분류:: 분할정복, 재귀 1. 문제 이해 및 해결과정 - 분할 정복의 대표적인 문제이다 - 네 부분으로 쪼개서 개수가 한개일때까지 반복해야한다 - 0으로만 이루어져 있거나, 1로만 이루어져 있으면 개수를 세고 - 0과 1이 섞여있으면 4개 영역으로 분할 된다 - 분할을 하기 위해서는 시작지점(h,w),크기,현재 배열이 필요하다 2. 풀이방법 1. [ python ] 재귀 onecnt,zerocnt=0,0 def quadTree(h,w,size,arr): global onecnt,zerocnt one=True #1로만 이루어 졌을 때 zero=True #0으로만 ..