일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Google Refund
- Google Developer API
- critical rendering path
- Camera Zoom
- react
- nodejs
- docker
- Unity IAP
- SDK upgrade
- draganddrop
- MySQL
- css framework
- Git
- Camera Movement
- rpg server
- mongoDB
- spread 연산자
- Spring Boot
- unity
- --watch
- server
- express
- Digital Ocean
- java
- screencapture
- springboot
- linux
- Packet Network
- OverTheWire
- Unity Editor
- Today
- Total
목록Algorithm(c++)/Level 2 (39)
우당탕탕 개발일지
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근 방법간선의 연결 정보를 저장한다.간선 정보를 저장하기 위해 2차원 배열(인접 리스트)을 선언한다. 예를 들어 [1, 3]이라는 간선이 있으면, 1번 노드와 3번 노드 양쪽에 각각 연결 정보를 추가한다. 이렇게 하면 양방향 그래프로 간선을 쉽게 관리할 수 있다.하나씩 간선을 제거하면서 두 트리의 개수 차이를 계산한다.모든 간선을 하나씩 제거해 보고, 그때 두 개의 트리로 나뉘게 된다. 이때 0번 노드에서 시작해서 BFS로 탐색하며 한..
https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법 1번마을에서부터 각 마을까지의 최단거리를 구한다.각 거리가 K이하인 마을의 개수를 반환한다.최단거리를 구하는 방법은 다익스트라를 사용한다. 주의사항이 문제에서는 최단거리 경로는 궁금하지 않고, 값만 궁금하므로, 이전노드를 저장하는 prev는 필요가없다!이 문제에서 도로는 양방향 도로이므로, map에 값을 넣을때 양방향 모두에 넣어줘야한다.getIndex()함수는, 다음으로 검사할 마을을 찾는 함수이다. visited되지 않았으며, 현..
https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법(실패)BFS를 이용하여 최단 거리를 찾으려 했다. S와 L, E 의 인덱스를 찾는다.S 에서 L 로 goSearch() , L에서 E로 goSerach() 를 수행하여 합을 리턴한다. 둘중 하나라도 -1이 나올 경우, 경로가 없다는 의미이므로 -1을 반환한다. goSearch() 는 아래와같이 동작한다.검사여부를 저장하는 visited와, 검사 대기줄인 queue를 생성한다. 시작점부터 queue에 넣고, 상,하,좌,우를 검사한다...
https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결방법 (실패)1의자리수부터 점점 올려가면서 내려가는게 효율적일지, 10층까지 올라간다음 한칸 내려오는게 효율적일지 계산한다. 만약 5보다 작다면 내려가는게 이득이고, 5이상이라면 올라가는게 이득이다. 5라면 5칸 올라간다음 10층을 한번 내려와야 하므로, 5까지는 내려가는게 이득이다.이 방법으로 모든 자리수를 계산하면 된다...고생각했다#include #include using namespace std;int solution(int s..
https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법과제 시작시간이 빠른 순서대로 정렬한다.현재시간을 나타내는 minute 과 , 미완료 과제의 남은 작업시간을 저장하는 스택 task를 선언한다.내 작업을 시작하기에 앞서, 현재시간과 작업 시작 시간 사이의 gap 이 다른과제를 할 찬스이다.이 시간동안 스택에서 작업들을 꺼내와 작업을 수행한다. 만약 남은 작업이 없거나, 짬 나는 시간을 모두 다 사용해서 새로운 과제를 시작해야 할 시간이 오면, 그 작업을 스택에 넣고 다음으로 넘어간다..
https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법(실패)합이 N이 되는 무게들의 인덱스 정보를 ws에 저장한다. 예를들어 무게 360을 만들 수 있는 인덱스가 1,2 일경우, 360 : [1,2] 이런식으로 ws에 저장한다.한 개 씩 정보를 저장하면서 페어를 맞출 수있는 개수를 찾는다.#include #include #include #include #include #include using namespace std;int pushItem(unordered_map>& ws, int..
https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법가능한 조합을 모두 찾고, unordered_map 에 ("abc",3개) 처럼 등장한 개수를 모두 저장한다.조합중에 개수가 가장많은것을 찾고, 그 조합을 answer에 넣는다.해결방법은 매우 간단한데, 가능한 조합을 어떻게 모두 찾을것인가? 재귀를 이용하여 풀었다. 실무에서는 재귀를 거의 안썼던것같은데 알고리즘 문제에서는 재귀가 꽤 많이 사용되는 듯 하다.#include #include #include #include #include..
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해결 방법뒤에 나보다 큰 수를 for문으로 찾으면 시간초과 문제가 발생한다. 적절한 자료구조를 이용해 빨리찾는 것이 핵심.스택을 만들고, 내 앞에 있는 숫자보다 작으면 그냥 넣는다. 만약 [9,3,2,5] 가 있다면 9 > 3 > 2 까지는 그대로 스택에 넣는다. 참고로 스택에는 index값을 넣는다. 만약 앞에 넣은 숫자보다 큰 숫자가 나왔다면,이제 작업을 시작할 때이다. 큐에서 하나씩 빼면서, 나자신보다 작은지 검사하여 만약 나보다 작..