본문 바로가기

c++/프로그래머스

(29)
프로그래머스 : 이중우선순위 큐 C++ programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 풀이 및 후기 1. 처음에 걍 벡터로 하면된다는 생각이 안떠올라서 우선순위 큐 써서 막 하고 그랬는데 걍 이 방법이 짱이다~ 2. 삽입할때 마다 벡터를 sort해버리면 됨!! #include #include #include #include using namespace std; vector solution(vector operations) { vector answer; string data; int value; vector end; for(int i=0;i
프로그래머스 : 거스름돈 C++ (DP 사용) programmers.co.kr/learn/courses/30/lessons/12907?language=cpp 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5 programmers.co.kr 풀이 1. 처음에 그냥 DFS 썻다가 효율성 테스트에서 시간초과 뜨더라 #include #include #include #include using namespace std; bool cmp(int a, int b) { return a>b; } int answer = 0; void dfs(int now,int index, vector mone..
프로그래머스 : 기지국 설치 C++ programmers.co.kr/learn/courses/30/lessons/12979?language=cpp 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 풀이 및 후기 1. 난 진짜 빡구현보다 이런게 더 어렵다, 아무리 문제를 풀어도 왜 생각이 안날까 1) index 두개로 관리한다 - station, 오름차순으로 정렬되어 있다 - now, 지금 내 위치! 2) now가 n까지 갈때까지 while 루프 지금 위치에 전파가 안온다면 기지국 설치 -> 지금 위치를 왼쪽끝에 걸치게 설치하는..
프로그래머스 : 길찾기 게임 C++ programmers.co.kr/learn/courses/30/lessons/42892?language=cpp 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 풀이 겸 후기 1. 그동안 알고리즘 풀때 포인터를 진짜 거의 안썻는데 이 문제는 포인터 없이는 너무 힘들어서 포인터 공부좀 다시 했다 2. 원래 주어진 벡터를 그냥 index로 치면 몰라도 이건 주어진 노드 정보들을 한번 sort하고 트리 구성하는거라 이게 훨씬 편하더라 1) 노드 stuct - 좌표정보랑, 자식 두명 포인터 2) 초기화 과정 3) 좌표를..
프로그래머스 : 지형 이동 c++ programmers.co.kr/learn/courses/30/lessons/62050 코딩테스트 연습 - 지형 이동 [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr 풀이 1. 일단 모든 지역을 사다리 없이 이동할 수 있는 구역으로 묶는다 2. 이제 크루스칼을 사용 1) 하나의 지역은 노드 2) 인접해있는 다른 지역으로 이동할때 드는 사다리 비용이 간선 길이 3) 간선의 정보는 struct 로 저장 -> 섬 두개, 비용 4) 비용에 따라 오름차순으로 정렬하고 유니온파인..
프로그래머스 : 가장 먼 노드 C++ BFS programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 후기 1. 심플한 BFS다 BFS는 문제만 다르지 푸는 방식이 다 똑같아서 쉬운거 같다 #include #include #include #include using namespace std; vector map[20001]; int solution(int n, vector edge) { int answer = 0; int length[20001];// length[2] 는 1번노드에서 2번노드까지 거리 int visited[20001]; memse..
프로그래머스 : 순위 C++ (플로이드 와샬 활용) programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 풀이 1. 플로이드 와샬 다시 한번 복습했다, 굉장히 유용할거같다 ex) a->b 가 있고 b-> c 가 있다면 a->c 도 있다는거!! 2. 같은 의미로 a가 b를 이기고, b가 c를 이겼으면 a가 c를 이긴거나 마찬가지 3. 모두 정리 후에 다른 사람들 모두와의 상대전적이 남아있다면 그것의 순위를 알수있다는거! #include #include using namespace std; int solution(int n, vector results) { int answer = 0; in..
프로그래머스 : 네트워크 C++ (유니온 파인드 연습) programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 풀이 및 후기 1. computers 배열 다 돌고 후에 꼭 한번 더 parent 초기화를 해줘야된다!!!! 2. 이거때문에 TC 9번에서 계속틀림 사실 이유는 잘 모르겠다 #include #include #include #include using namespace std; int parent[201]; int getParent(int x) { if(parent[x]==..