
14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net POINT Dynamic Programing (dp) 피보나치 수열이 대표적인 예시이다. 1. 큰 문제를 작게 나눌 수 있고, 2. 작은 문제에서 구한 결과가 큰 문제에서도 사용되면 Dynamic Programing을 사용한다. 재귀(Top-down), 반복(Bottom-up) 두 가지 방법이 있으며, 시간 복잡도를 고려해서 보통 반복문을 사용한다. 풀이 특이한 점은 dp를 거꾸로 적용해야 한다는 점이다. i 번째 날 수익이 그 이후 i + t번째 날에 영향을 받기 때문이다. i 번째 날의 수익을 더할지 말지 판단할 때, 그 상담이 끝난 후가 퇴사 전이어야 수익을 더할 수 있다. 반대로 i 번째 날 ..

1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net POINT Brute Force 모든 경우의 수를 탐색하여 정답을 찾는다. 전체 탐색을 사용한다. (순차 탐색, BFS, DFS 등) Backtracking + DFS = Combinations 백트래킹과 DFS를 함께 사용하여 조합을 구현한다. 풀이 Python은 조합을 구현한 내장 함수가 있기 때문에 풀이도 내장함수를 사용한 방법과 아닌 방법으로 두 가지이다. 방법1️⃣ 조합 내장 함수(combinations)를 사용한다...

11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net POINT 등비수열 재귀 함수 (Recursion function) 함수 안에서 함수 자신을 또 호출하여 사용하는 함수 하노이 탑 n개의 원반을 옮긴다면, 1단계. 제일 큰 원반을 제외한 나머지 (n-1)개의 원반을 2번으로 옮긴다. 이동 횟수: f(n-1) 번 2단계. 제일 큰 원반 1개를 3번으로 옮긴다. 이동 횟수: 1번 3단계. (n-1)개의 원반을 3번으로 옮긴다. 이동 횟수: f(n-1) 번 결론. 다음과 같은 식이 만들어지며, 등비수열로 ..

로그인 www.acmicpc.net POINT dfs (깊이 우선 탐색) 바이러스가 있는 곳(2)을 기준으로, 주변에 바이러스를 퍼뜨린다. → 바이러스 주변 칸의 값이 0이면 2로 바꾸고 주변을 계속 탐색한다. (방문 처리) 풀이 1. 새로운 벽을 3개 세운다. 2. 바이러스를 퍼뜨린다. 3. 안전 지역의 최댓값을 계산한다. 4. 모든 곳에 벽을 세워 볼 때까지 1 ~ 3을 반복한다. from itertools import combinations n, m = map(int, input().split()) graph = [[0] * m for _ in range(n)] new_graph =[[0] * m for _ in range(n)] # 복사한 그래프 blanks = [] # 빈칸 위치를 넣은 리스트 ..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr POINT 삭제할 수 있는 조건은 복잡하지만 설치할 수 있는 조건은 비교적 쉽게 구현할 수 있습니다. 그러니 우선 삭제/설치한 다음에 매번 가능한 구조물인지 확인하고, 불가능하면 원상복구하도록 풀어봅시다. 기둥을 설치할 수 있는 조건 기둥의 좌표를 (x, y)라고 하면 세 가지 조건 중 하나를 만족하면 됩니다. 보를 설치할 수 있는 조건 보의 좌표를 (x, y)라고 하면 두 가지 조건 중 하나를 만족하면 됩니다. 풀이 # 설치물이 조건을 만족하는지 확인한다 def is_possible(result): for ..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 효율성 테스트에 부분 점수가 있는 문제입니다. 라고 나와있으니 문제 그대로 풀면 분명 시간 초과가 나올겁니다. POINT 시간이 적게 걸리는 음식부터 공략한다! k를 초과하지 않는 선에서, 먹는 시간이 적은 음식부터 먹어치운다. → 시간이 적은 음식부터 나열하기 위해 우선순위 큐를 사용해보자. 한 음식을 다 먹는 시간이 k를 초과한다면, 원래 풀이대로 먹고 남은 시간만큼 번호를 센 후 반환한다. 시간은 작은 순으로 2번 → 3번 → 1번을 먹는다고 하면, 해당 음식을 다 먹는데 걸리는 시간은 위와 같습니다..
- Total
- Today
- Yesterday
- backtracking
- 이벤트루프
- Spotify
- dfs
- DP
- React
- p5js
- 코드분석
- Unsplash
- 비동기
- 코딩테스트
- 프로그래머스
- 문제풀이
- 파이썬
- 코어자바스크립트
- 다이나믹프로그래밍
- flutter
- python
- 코테
- 백트래킹
- 백준
- React-native
- javascript
- nodeJS
- node.js
- Python3
- React.js
- 알고리즘
- rn
- fetch
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |