일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Combinations
- python
- 정규식
- BFS
- 정렬
- Re
- Set
- backjoon
- heapq
- 재귀함수
- programmers
- dfs
- java
- 수학
- 그리디
- 추석맞이 코딩챌린지
- 프로그래머스
- 다익스트라
- KAKAO BLIND RECRUITMENT
- 이분탐색
- 자바
- DateTime
- 카카오
- 위클리 챌린지
- lambda
- 파이썬
- divmod
- 백준
- Zip
- 동적 계획법
- Today
- Total
목록재귀함수 (7)
상상쓰
https://cafe.naver.com/codeuniv/45014
https://cafe.naver.com/codeuniv/44963 [추석맞이 코딩챌린지③] 블랙잭 첫 번째 문제와 두 번째 문제는 잘 풀어보셨나요? 오늘은 Lv.3 문제로 좀 어려울 수 있어요ㅠㅠ 하지만 우리 모두 할 수 있어요! 오늘도 파이팅💪💻🔥 세 번째 문제는 ... cafe.naver.com 재귀함수를 사용하여 N 개의 카드 중에서 세 장의 카드를 뽑도록 구현하였다. 0 0 1 0 1 2 0 1 3 . . . 0 1 N 0 2 3 . . . N-3 N-3 N-2 N-3 N-2 N-1 순으로 계산하며 하나의 카드 또는 두 장의 카드의 숫자의 합이 X 를 넘으면 그 카드를 포함하는 경우는 더 진행하지 않는다. 합이 X 를 넘지 않으면서 세 장이 됐을 때 세 장의 카드의 숫자의 합 중에서 최댓값을 출..
https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net Node class 를 만들어 트리 순회를 해보았다. dic[i] = Node(i) (i 는 'A' ~ 'Z') 를 만들고 주어지는 입력을 바탕으로 dic[i].left = dic[left], dic[i].right = dic[right] 로 왼쪽 자식 노드 또는 오른쪽 자식 노드에 알맞는 노드를 준다. '.' 은 생략한다. 다음 재귀를 이용하여 전위 순회, 중위 순회, 후위 순회를 구..
https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 균형잡힌 괄호 문자열, c == 0 올바른 괄호 문자열, t = True 를 가지고 문제의 4단계를 재귀함수를 이용해 진행하면 된다. def solution(p): answer = '' if p != '': n = len(p) c = 0 t = True for i in range(n): c = c + 1 if p[i] == '(' else c - 1 if c < ..
https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net DFS 알고리즘, 재귀함수를 이용하여 괄호를 추가할 수 있는 모든 경우를 나타내었다. 3+8*7-9*2 를 예로 들었을 때, rf 함수에 str(l) + o + l_ + o_ + r_ 를 출력해보면 0+(3+8)*7-9*2 0+(3+8)*(7-9)*2 0+(3+8)*7-(9*2) 0+3+(8*7)-9*2 0+3+(8*7)-(9*2) 0+3+8*(7-9)*2 0+3+8*7-(9*2) (..
https://programmers.co.kr/learn/courses/30/lessons/72416 코딩테스트 연습 - 매출 하락 최소화 CEO를 포함하여 모든 직원은 팀장 또는 팀원이라는 직위를 가지고 있으며 그림에서는 팀장과 팀원의 관계를 화살표로 표시하고 있습니다. 화살표가 시작되는 쪽의 직원은 팀장, 화살표를 받는 programmers.co.kr DFS 와 동적 계획법을 이용하여 풀 수 있을 거라고는 생각했는데 dp 배열을 구현하기가 어려워서 다른 블로그를 참고하여 풀어나갔다. dp[i][0] : i 가 참석하지 않았을 때의 최솟값, dp[i][1] : i 가 참석했을 때 최솟값으로 정의하고, 기본값으로 dp[i][1] = sales[i-1], dp[i][0] = 0 으로 시작한다. 리프 노드부..
https://programmers.co.kr/learn/courses/30/lessons/64063 코딩테스트 연습 - 호텔 방 배정 programmers.co.kr dic 과 재귀함수를 이용하여 빠르게 빈방을 찾아주도록 한다. 처음에는 아래의 방식과 비슷하게 구현하여 while 을 이용하여 dic[dic[]] 으로 구현했는데 시간 초과가 났다. 다른 블로그를 참고하니 재귀함수가 사용되었는데 앞으로 비슷한 문제가 나오면 이렇게 풀어야겠다. import sys sys.setrecursionlimit(10000000) def room_empty(i, dic): answer = 0 if i not in dic: dic[i] = i + 1 answer = i else: j = room_empty(dic[i],..