일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Level 4
- 2020 KAKAO BLIND
- DFS
- 부스트코스
- Web
- 월간 코드 챌린지
- 시뮬레이션
- 브루트포스
- DP
- pass
- BFS
- c++
- 그리디
- 백준
- 프로그래머스
- next_permutation
- 코드 리뷰
- 2019 KAKAO BLIND
- Level 2
- level 1
- Gold 4
- 2020 카카오 인턴십
- 백트래킹
- 코드리뷰
- Level 3
- Gold 5
- 구현
- 스택/큐
- 삼성 SW 역량 테스트
- SWEA
- Today
- Total
목록DP (8)
Min:D's Devlog
문제 백준 삼성 SW 역량 테스트 기출 문제 - 14501 퇴사 (Silver 4) 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 풀이 접근 방식 상담을 적절히 했을 때, 얻을 수 있는 최대 수익을 구하는 문제이다. 이 문제는 DP 방식으로 문제를 해결하였다. 우선, DP 벡터를 만들어 DP[i]에 i - 1일 동안 했던 상담의 최대 수익을 저장해주었다. i번째 날의 상담을 기간 내에 할 수 있는 경우에는, DP[i + 소요 기간]에 기존의 값과 (DP[i] + 수익)의 값 중 더 큰 값을 저장해주었다. 또한, 매번 다음날의 값과 현재의 값을 비교하여 더 큰 값을 DP[i+1]에 저장하였다. 위의 과정을 주어진 일정만큼 반복하면 DP[N+1..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 15685 드래곤 커브 (Gold 4) 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커� www.acmicpc.net 문제 풀이 접근 방식 정사각형의 네 꼭짓점이 모두 드래곤 커브의 일부인 정사각형의 개수를 구하는 문제이다. 드래곤 커브는 이전 세대의 커브를 시계 방향으로 90도 회전시켜 끝 점에 붙인 형태로 만들어진다. 우선, 이렇게 만들어지는 드래곤 커브에 규칙성이 있는지를 확인해보았다. 방향이 0으로 시작하는 커브의 경우 0 - 01 - 0121 - 01212..
문제 프로그래머스 2020 KAKAO BLIND RECRUITMENT - 블록 이동하기 (Level 3) 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 문제 풀이 접근 방식 이 문제는 2020 카카오 블라인드 채용 1차 코딩테스트 7번 문제로, 정답률이 1.7%인 쉽지 않은 문제였다. 구하고자 하는 것은 로봇이 (N, N) 위치까지 이동하는데 필요한 최소 시간이다. 이 문제는 최소 시간을 구하는 기존의 BFS + DP 문제와 푸는 방식은 비슷했지만, 로봇이 점 두 개로 이루어져 있어서 구현하기가 복잡하였다. 이 문제를 기존의 방식처럼 풀..
문제 프로그래머스 2017 카카오코드 예선 - 보행자 천국 (Level 3) 코딩테스트 연습 - 리틀 프렌즈 사천성 리틀 프렌즈 사천성 언제나 맛있는 음식들이 가득한 평화로운 푸드 타운. 푸드 타운에서 행복하게 사는 리틀 프렌즈들은 마을에 있는 매직 스푼을 보물처럼 보관하고 있다. 매직 스푼은 재료만 programmers.co.kr 문제 풀이 접근 방식 출발점에서 도착점까지 이동 가능한 전체 경로의 수를 구하는 문제이다. 이 문제는 단순한 맵이 아닌 조건이 있는 맵이기 때문에 이를 고려하여 DP 방식으로 문제를 해결해주었다. 우선, map의 값이 0인 경우에는 모든 방향으로 움직일 수 있고, 1인 경우에는 갈 수 없으며, 2인 경우에는 직진만 가능하다. 2인 경우에 직진만 가능하기 때문에 수직 방향(↓)..
문제 프로그래머스 DP - 도둑질 (Level 4) 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 �� programmers.co.kr 문제 풀이 접근 방식 도둑이 훔칠 수 있는 돈의 최댓값을 구하는 문제이다. 주어진 집들은 원형으로 배치되어 있고, 인접한 집을 털 수 없다는 점을 고려하여 문제를 해결하였다. 우선, 집이 3개만 있을 때에는 한 집만 선택 가능하기 때문에, 3군데 중 최댓값을 리턴해주었다. 그 이상인 경우에는 DP 방법으로 문제를 해결하였다. 즉, 첫 번째 집을 반드시 포함하는 경우의 최댓값을 DP1, 두 번째 집을 포함하는..
문제 백준 - 1261 알고스팟 (Gold 4) 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 문제 풀이 접근 방식 이 문제는 0, 0에서 시작하여 N-1, M-1에 도달하기 위해 파괴한 벽의 개수의 최솟값을 구하는 문제이다. 그래서 BFS + DP의 방식으로 이 문제를 해결하였다. 우선, destroy라는 2차원 벡터의 모든 값들을 큰 수(987654321)로 설정해놓고,BFS 탐색을 수행하며 그 위치에 도달하기 위해 파괴한 벽의 개수의 최솟값을 destroy 벡터에 저장해주었다. 즉..
문제 SWEA 모의 SW 역량테스트 - 1952 수영장 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 1일권 / 1달권 / 3달권/ 1년권의 조합으로 가능한 최소 비용을 구하는 문제이다. 우선, 1일권과 1달권을 먼저 비교해주었고, 그 값과 3달권을 비교하여 더 나은 선택을 찾아주었다. 마지막으로 그 결과와 1년권의 가격을 비교하여 최종적인 최소 비용을 구하였다. 1) 1일권과 1달권 각 달의 이용 계획 일수를 days 벡터에 입력받고, (계획 일수) × (1일권의 가격)과 1달권의 가격 중 더 낮은 가격을 선택하여 저장해주었다. 그리고 모든 달의 비용의 총합(total)도 구해주었다. ..
문제 프로그래머스 DP - N으로 표현 코딩테스트 연습 - N으로 표현 programmers.co.kr 문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현할 수 있는 방법 중 N 사용 횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시..