일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- opic
- stack 스택
- 오픽
- 이진탐색 #나무 자르기
- 바텀업
- 탑다운
- ㅂ
- English
- 오픽노잼
- 오픽점수잘받는방법
- 오픽가격
- XML주석
- 안드로이드주석
- topdown
- dynamicProgramming
- 다이나믹프로그래밍
- 오픽공부법
- fibo
- 오픽노잼공부방법
- dp
- 안드로이드
- 영어회화
- 피보나치수열
목록PS (254)
RUBY
출처:: programmers.co.kr/learn/courses/30/lessons/12981?language=python3 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. [python] def solution(n, words): turn=0 num=1 #이미말했던것을 또말하면 탈락 # words 수가 n으로 나누어 떨어지고 이전글자와 첫번째 글자 같으면 합격 for i in range(1,len(words)): word=words[i] num%=n if words[i-1][-1]!=word[0] or word in words[0:i]: #글자 틀린 경우 turn=i//n+1 return [num+1,turn] #탈락하는 사람은 번호, 몇번째차례 num+=1 return [0,0] 3. 오답..

출처:: programmers.co.kr/learn/courses/30/lessons/43165 분류:: dfs 1. 문제 이해 및 해결과정 2. 풀이방법 1. [python] dfscnt=0 def dfs(d,n,res,numbers,target): global cnt if d==n-1: if res==target: cnt+=1 else: dfs(d+1,n,res+numbers[d+1],numbers,target) #더할 경우 dfs(d+1,n,res-numbers[d+1],numbers,target) #뺄 경우 def solution(numbers, target): dfs(-1,len(numbers),0,numbers,target) return cnt 3. 오답원인 4. 알게된 점
출처:: programmers.co.kr/learn/courses/30/lessons/12977?language=python3 분류:: 소수판별 1. 문제 이해 및 해결과정 2. 풀이방법 1. 소수판별 from itertools import combinations import math def isprime(x): #소수 판별 for i in range(2,int(math.sqrt(x))+1): if x%i==0: return False return True def solution(nums): cnt=0 candi=[] selected=list(combinations(nums,3)) for x,y,z in selected: candi.append(x+y+z) #만들수 있는 경우의 수 for x in can..
출처:: programmers.co.kr/learn/courses/30/lessons/12973?language=python3 분류:: 스택 1. 문제 이해 및 해결과정 2. 풀이방법 1. 스택 def solution(s): answer = 0 stack=[] #아무것도 없을 경우는 그냥 넣기 #top이 현재와 다르면 현재를 넣고 #top이 현재와 같으면 top을 뺌 for i in range(len(s)): if len(stack)==0 or stack[-1]!=s[i]: stack.append(s[i]) else: stack.pop() if stack: #스택에 남아있으면 return 0 else: #스택이 비어있으면 return 1 3. 오답원인 4. 알게된 점
출처:: programmers.co.kr/learn/courses/30/lessons/1845?language=python3 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. [ python ] def solution(nums): n=len(nums)//2 #잡을 수 있는 포켓몬 마리수 kind=len(set(nums)) #종류 return min(n,kind) #잡을 수 있는 포켓몬과 종류 중 작은것 2. [ python ] def solution(nums): n=len(nums)//2 #잡을 수 있는 포켓몬 마리수 kind=[] #추가할 수 있는 종류 for k in nums: if k not in kind: kind.append(k) return min(n,len(kind)) 3. [pyth..
출처:: programmers.co.kr/learn/courses/30/lessons/12924?language=python3 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. [ python ] def solution(n): cnt=0 for i in range(1,n+1): # 1~n까지 차례대로 기준 설정 sum=0 for j in range(i,n+1): #기준점부터 sum+=j if sum==n: #합이 n과 같으면 cnt+=1 break elif sum>n: #합이 n보다 크면 더 할 필요없음 break return cnt 3. 오답원인 4. 알게된 점
출처:: programmers.co.kr/learn/courses/30/lessons/12953# 분류:: 1. 문제 이해 및 해결과정 2. 풀이방법 1. 2개씩 빼서 최소공배수 구함 def lcd(a,b): #최소공배수 구하는 함수 x,y=a,b while a!=0: a,b=b%a,a #나머지, 나누는수 return x*y//b def solution(arr): while len(arr)>=2: #두개를 빼서 최대공배수 추가 a=arr.pop() b=arr.pop() arr.append(lcd(a,b)) return arr.pop() 3. 오답원인 1. a,b,c의 최소공배수를 한꺼번에 구하면 틀림 ex) 2,3,4 -> 2,3의 최소공배수를 구하고 구한 6과 4의 최소공배수를 구하는 방식으로 두개씩 ..
출처:: 2020 카카오 인턴십 programmers.co.kr/learn/courses/30/lessons/67257 분류:: 1. 문제 이해 및 해결과정 - 숫자와 연산자 분리하기 1) 정규표현식 expression = re.split('([*-+]{1})',expression) #*,-,+가 있으면 하나의 그룹으로 묶어서 2) expression = re.split(r'(\D)',expression) #숫자가 아닌 것을 그룹으로 묶어서 3) 정규표현식을 안쓰면 tmp="" num=[] op=[] for x in expression: if x=="*" or x=="-" or x=="+": num.append(int(tmp)) op.append(x) tmp="" else: tmp=tmp+x num.ap..