일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- critical rendering path
- java
- Camera Movement
- draganddrop
- OverTheWire
- unity
- css framework
- Spring Boot
- Digital Ocean
- --watch
- Git
- springboot
- express
- Unity Editor
- Camera Zoom
- react
- MySQL
- screencapture
- spread 연산자
- Unity IAP
- Google Refund
- Google Developer API
- docker
- SDK upgrade
- nodejs
- linux
- mongoDB
- Packet Network
- rpg server
- server
- Today
- Total
목록Algorithm(c++)/Level 3 (35)
우당탕탕 개발일지
https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법일반적인 다익스트라로 풀면 안된다. 일반적인 다익스트라로 풀경우, 몇 가지 테스트에서 실패가 나온다.🚩 문제의 핵심:✅ 1. 같은 좌표라도 "어떤 방향"으로 도착했는지가 중요하다!같은 지점 (x, y)에 도착했다고 해도, "어떤 방향으로 왔는가"에 따라 앞으로 이동할 때 비용이 달라질 수 있다.📍 예시:(0,0) → (0,1) → (1,1)로 이동하는 상황을 생각해보자. 1️⃣ 수평 이동: (0,0) → (0,1) (오른쪽으로 이..
https://school.programmers.co.kr/learn/courses/30/lessons/132266 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법이 문제는 Level 2. 배달 문제와 동일하게 다익스트라 알고리즘으로 푸는 문제이다. 여기에서 몇가지 주의사항이 늘어나서 Level 3이다.문제에서 제공한대로 각 지점에서 desination까지의 거리를 각각 찾지말고, destination을 출발지점으로 정하고 다익스트라를 하면 각 지점까지의 최소거리가 나온다. 지점의 수는 10만개까지이다. 즉 맵이 너무 크기때문에, 맵 정보 저장시 10만x10만의 배열로 만드는 것은 너무 비효..
https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이진트리 탐색으로 모든 경우의 수를 탐색하고, 그 중 양이 제일많은 경우를 찾는 문제이다.이 문제가 진짜 어려웠던 것은, visited했던 곳도 나중에 다시 찾아야 한다는 점이다. 한마디로 자신의 삼촌이나 조카노드까지 다시 검사를 해야한다. 내 아래에있는 자식들까지 모두 검사를 했다면, 내조카, 삼촌들을 위해서 visited = false로 변경해주는것이 핵심인 문제이다. #include #include #include #include ..
https://school.programmers.co.kr/learn/courses/30/lessons/136797 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제는 DP (동적 계획법) 을 사용해야 하는 문제이다. 첫번째 문자열부터 시작해서, 결과값을 저장한다. 다음 문자열을 검사할 때, 이전 기록을 가져와 최적의답을 찾는다. 해결방법3차원 배열 m을 선언한다. m[1][2][3] 은 첫번째 문자열까지 눌렀고, 왼손이 2, 오른손이 3일때의 최솟값이다. 우리의 목표는 m[문자열사이즈] 에서의 최솟값을 찾는 것이다.m[0][4][6] = 0 을 넣는다. 이는, 시작할때 왼손에 4, 오른손에 6이..
https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법비용이 적은 다리 순으로 나열한다.연결할 필요가 있다면 연결한다. 연결할 필요는 어떻게 판단하나?서로 연결된 지점들은 트리로 연결되어 있다. 두 지점이 연결되어있는지 확인하기 위해서는 자신의 루트노드를 찾고, 두 지점의 루트노드가 같다면 이미 다리를 이용해 연결되어있다는 의미이다. 만약 두 지점의 루트노드가 같다면 연결하지 않고 넘어간다.루트노드가 다르다면, 두 트리를 연결한다. 하나의 루트노드를 다른하나의 루트노드에 연결한다.#i..
https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법정렬을 한다. 기준은 , Y값이 가장 높으 순서로, 그다음 x값이 작은 순서대로 나열한다. BFS탐색할때처럼 만들면된다.맨 첫번째아이템이 root가 되고, 아이템 한개 씩 insertNode를 수행한다.preorder과 postorder를 수행해서 answer에 넣는다.#include #include #include #include using namespace std;struct Node{ int id,x,y; Node* ..
https://school.programmers.co.kr/learn/courses/30/lessons/214288 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법동일한 타입의 상담을 원하는 유저들끼리 모은다. types[i] 에는 타입이 i인 고객들이 들어있다. (정렬은 이미 되어있다고 하니, 할 필요없다.)모든 타입에 상담원을 한명씩 배치한 tutors 를 만든다. tutors[i] 는 타입이 i인 부스의 상담원 수이다.이제 한명씩 상담원을 배치할건데, getWait을 이용하여 상담원이 N명일 경우 기다려야하는시간을 구한다. 현재 상담원 수 기준 기다리는 시간이 a분이고 현재 상담원..
https://school.programmers.co.kr/learn/courses/30/lessons/150365?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법이동거리 K가 고정되어있다. 시작지점에서 끝 지점에 가기 위해서 가야하는 횟수는 정해져있다. (오른쪽2번, 아래2번) 이런식이다. 예제 1번에서, 오른쪽1번, 왼쪽2번만 가면 도달할 수 있는데 총 5번을 이동하라고 했다. 즉, 남은 2번은 위-아래를 하던지 왼-오 를 하던지, 의미없는 이동을 하라는 의미이다. 왼,오,위,아래를 각각 필수적으로 몇번 이동해야하는지를 찾는다. (x,y)와 (a,b)를 다이렉트로 간..