일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- algoritm
- 8-Puzzle
- LEVEL2
- 프로그래머스
- programmers
- Project
- Silver
- stack
- level3
- algorithm
- effective C++
- knapsack Problem
- C++11
- two pointer
- PrefixSum
- BFS
- Bronze
- Modern C++
- SWEA
- Greedy
- Gold
- Euclidean
- Zenject
- level1
- 3D RPG
- BOJ
- binary search
- smart pointer
- trie
- Unity
- Today
- Total
목록All (154)
Patrick's Devlog
개요 조금씩 알고리즘 공부를 진행하고 있던 중에, DP에 대해 이미 공부를 했지만 아직 많이 빈약한 것 같아 유튜브를 통해 인강을 들은 후 다시 한 번 정리하려고 한다. 강의는 코드없는 프로그래밍님의 Dynamic Programming이다. 강의를 듣고싶다면 아래의 링크로 들어가면 들을 수 있다. https://www.youtube.com/watch?v=eJC2oetXaNk Dynamic Programming 다이나믹 프로그래밍은 세가지 조건이 충족되면 바로 적용이 가능하다 1. Problem이 더 작은 subproblem으로 쪼개질 때 2. 이런 subproblem들의 솔루션으로 더 큰 규모의 problem의 솔루션을 구할 수 있을 때 3. 이러한 subproblem들이 겹칠 때 -> memorizat..
1. 문제 개요 https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 1-1. 설명 자연수 M과 N이 주어질 때 M이상 N 이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성한다. 1-2. 제한사항 - 입력의 첫째줄이 M, 둘째줄이 N 주어짐. - M과 N은 10,000이하의 자연수이며 M은 N보다 작거나 같음 - 자연수 중 소수를 찾아 첫째줄에 합을, 둘째줄에 최솟값을 출력 - M이상 N이하 자연수 중 소수가 없을 시 -..
1. 문제 개요 https://www.acmicpc.net/problem/16435 16435번: 스네이크버드 첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다. www.acmicpc.net 1-1. 설명 스네이크버드는 뱀과 새의 모습을 닮은 생물체이다. 주요 먹이는 과일이며 과일 하나를 먹으면 길이가 1만큼 늘어난다. 과일들은 지상으로부터 일정 높이를 두고 떨어져 있으며, i번째 과일 높이는 h_i이다. 스네이크버드는 자신의 길이보다 작거나 같은 높이에 있는 과일을 먹을 수 있다. 스네이크버드의 처음 길이가 L일 때..
개요 분량이 많아지다 보니 나눠서 작성하게 되었다. 3, 4항목만 정리한다. 내가 알고 있던 C++보다 훨씬 깊게 배워 읽는 속도가 느려 정리가 늦어진다. 빠르게 한다기 보다, 이해를 목적으로 천천히 정리하려고 한다. Item 3: 낌새만 보이면 const를 들이대 보자 const는 여러 방면에서 쓰인다. 클래스 외부에서는 전역 혹은 네임스페이스 유효 범위의 상수를 선언하는데 쓸수 있다. 이뿐만 아니라, 파일, 함수, 블록 유효 범위에서 static으로 선언한 객체에서도 const를 붙일 수 있다. 클래스 내부에서는 정적 멤버 및 비정적 데이터 멤버 모두를 상수로 선언할 수 있다. 또한 포인터는 포인터 자체를 상수로, 혹은 포인터가 가리키는 데이터를 상수로 지정할 수 있다. 여기서 둘 다 지정할 수 있고..
1. 문제 개요 https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 1-1. 설명 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨요일일까? 이를 알아내는 프로그램을 작성하시오 1-2. 제한사항 - x월 y일을 입력받음 - x는 1이상 12이하, y는 1이상 31이하 - 2월은 28일까지 존재 2. 구현 2-1. 풀이 단순하게 요일과 달마다 일 수를 vector로 저장하고 x월 ..
개요 C++에 관련하여 조금 더 효과적이고 심도있게 공부하기 위해 관련 서적을 구매하여 공부할 예정이다. 서적은 C++를 조금 더 잘 설계하고 활용하고자 스콧 마이어스의 를 선정하였다. 앞으로 정리해야할 부분은 블로그에 차근차근 작성할 예정이다. Item 1 : C++를 언어들의 연합체로 바라보는 안목은 필수 C에서 파생된 C++는 초기와 다르게 점차 발전하여 다중패러다임 프로그래밍 언어(multiparadigm programming language)라고 불린다. 절차적, 객체지향적, 함수식, 일반화 프로그래밍을 포함해 메타프로그래밍 개념까지 지원한다. 위와 같은 유연함 덕분에 C++는 소프트웨어 개발에 매우 적절하다. 하지만 사용하기까지 C++의 이해도는 높아야 한다. C++를 조금 더 잘 이해하기 위..
1. 문제 개요 https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 1-1. 설명 정수 n이 매개변수로 주어지며, 아래의 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한다. 이 때 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return하도록 하는 함수를 완성한다. 1-2. 제한사항 - n은 1이상 1,000 이하 2. 구현 2-1. 풀이 2차원 ..
1. 문제 개요 https://programmers.co.kr/learn/courses/30/lessons/12941 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr 1-1. 설명 길이가 동일한 배열 A, B가 있다. 각 배열은 자연수로 존재한다. 각 배열에서 한개의 숫자를 뽑아 두 수를 곱한다. 이러한 과정을 배열 길이만큼 반복해 곱한 값을 누적해 더한다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표이다. 배열 A, B가 주어질 때 최종적으로 누적된 최솟값을 return..