일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mongoDB
- java
- Git
- Google Refund
- linux
- css framework
- Camera Zoom
- MySQL
- express
- Digital Ocean
- server
- critical rendering path
- docker
- Camera Movement
- nodejs
- Google Developer API
- --watch
- OverTheWire
- unity
- Unity Editor
- springboot
- spread 연산자
- rpg server
- SDK upgrade
- Packet Network
- Unity IAP
- react
- screencapture
- draganddrop
- Spring Boot
- Today
- Total
목록Algorithm(c++) (82)
우당탕탕 개발일지

https://school.programmers.co.kr/learn/courses/30/lessons/12971 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법완전탐색을 진행하기에는 sticker의 크기가 매우 크기 때문에, DP를 이용해 푼다. 원리는 다음과 같다. 예시와 함께 보자 dp[i] 는 i번째 인덱스까지의 스티커 중 나올 수 있는 최대값이다.dp[0] = 0번째까지중 조합가능한 최대이므로, 14이다.dp[1] = 1번째까지중 최대이므로, 14와 6중 큰 값이다.dp[2] = 아래 두 경우중 더 큰 수를 고른다. dp[1] 은 6까지 포함될 수 있는 조합 중 가장 큰수이므로,..
https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법통신이 원활히 되는 right 값을 저장하고있는다. station을 돌면서, 어디서부터 어디까지 통신이 안되는지를 찾는다. 그 구간에 기지국이 몇개 필요한지 찾아서 answer에 더해주고, right값을 갱신한다. 예제 1로 풀어보기처음 right = 0 으로 시작한다. stations[0] = 4이고 w = 1이므로, 3번아파트까지는 통신이 원활하다. 즉, left = 3이다. 1번~2번아파트에 기지국 설치가 필요하다. 기지국 설치..
https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법숫자를 1씩 증가시켜서 검사할 경우, 시간초과가 발생한다. 값이 0010 이라면, 그다음으로 큰 수는 0011 이다. 처음으로 나오는 0을 1로 변환했다.값이 0001 이라면, 그 다음으로 큰 수는 0010 이다. 처음으로 나오는 0을 1로 변환하고, 그 앞의 1을 0으로 변환했다.이 내용을 종합하면, 2비트 이하로 다르면서 가장 작은 수를 구하는 방법은 다음과같다.num을 2진수변환하면서 배열 digits에 넣는다. digits[0..
https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법진출 지점이 앞부분인 차량순으로 정렬한다. (routes[a][1] 맨 앞 차부터, 나갈때 단속카메라를 설치한다. 즉, routes[i][1] 부분에 감시카메라를 설치한다.만약 현재 설치된 카메라지점안에 차량이 있다면, 즉, 진입부분이 카메라보다 앞에 있다면, 카메라를 설치할 필요가 없으므로 그냥 넘어간다. 만약 현재 카메라지점에 내 차량이 포함되지 않는다면 , 내 진출부분에 카메라를 설치한다. #include #include #inc..
https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결방법동적계획법으로 푼다. N길이의 타일을 길이가 1인타일과 길이가 2인 타일을 적절히 조합하여 놓는 경우의 수를 구하는 문제이다. N길이의 타일을 까는 방법은 2가지가 있다. N-1 길이까지 타일을 깐다음 세로타일깔기.N-2 길이까지 타일을 깐다음 가로타일깔기. 따라서 f(n) = f(n-1) + f(n-2) 라는 결과가 나오게된다.#include #include using namespace std;int solution(int n) { ..
https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법두 배열을 오름차순으로 정렬한다.가장 큰값부터 비교를 한다. 만약 B 가 이길 수 있는 상황이라면 A와 B가 대결했음 처리를 하고, a++, b++ 한 뒤 다음으로 넘어간다.만약 A가 B보다 크다면, A를 이길 수 있는 B는 없다는 의미이다. 그러므로 졌다고 판단하고 A를 넘긴다. B는 가장 작은 수로 대결할것이므로, B의 인덱스인 b는 증가하지 않고 A의 인덱스만 증가시킨다.#include #include #include usin..
https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법처음엔 [1,1,1,1...,1] 부터시작하여, 하나씩 더하는 방식으로 모든 경우의 수를 구해서 풀었다. 그러나 시간초과가 발생했다. 탐색은 아니고, 균등하게 분배할 수록 곱이 커진다는 것을 이용하여 푸는 문제였다. N개짜리 배열을 만들고 거기에 최대한 균등하게 배분한 뒤, 남은 수는 각 원소에 1씩 더하는 방법으로 간단하게 해결할 수 있는 문제였다. #include #include using namespace std;vector ..
https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법scores 변수를 선언한다. 3차배열이다 . scores[i][j] 는 i행j열까지 왔을때 가능한 최대값들을 저장한다. 그런데 직전위치, 즉 i-1번째에서 몇번째열이었는지가 중요하기때문에, 차원을 한차원 늘린다. scores[i][j][0] 은 land[i-1][0] 에서부터 온 값중 최대값이다. land[i][j][1] 은 land[i-1][1] 에서 온 값중 최대값이다. 0번째 행에는 이전값이 없으므로 0이제 첫번째행부터 돌면..