본문 바로가기
반응형

[알고리즘 + 자료구조]/[프로그래머스]82

[프로그래머스] 미로 탈출 C++ 다시 풀어보는 문제.이번엔 정확성이 자꾸 틀려서.. 예전에 어떻게 풀었나 코드 보니이번에 문제를 꼼꼼히 읽지 않았다. n x n 맵인줄 알았더니 row x col 맵이었다. 풀이는 마찬가지로 레버에서 bfs 돌면 된다.#include #include #include #include using namespace std;int mx[4] = {1, -1, 0, 0};int my[4] = {0, 0, 1, -1};bool visit[101][101];int goal = 0;bool sVisit, eVisit;void bfs(int sx, int sy, int row, int col, vector& maps) { queue, int>> que; que.push({{sx, sy}, 0}).. 2024. 3. 22.
[프로그래머스] 등산코스 정하기 이전에 풀었던 적이 있는데, 다익스트라를 복습할 겸 다시 풉니다.  이전 풀이를 공부한 뒤에 다시 풀었는데, 이전에 풀었던 거에 다소 불필요한 부분이 있어서 풀이를 보고 헷갈렸다.다익스트라에 대한 설명은 잘 되어 있는데, 등산코스 문제에 대해서는 초기값을 -1로 세팅하고 분기하는 불필요한 과정이 있었습니다.#include #include #include #include #include #include #define MAX(a, b) ((a >= b) ? a:b)using namespace std;vector>> v(50001, vector>());vector interval(50001, INT_MAX);vector> answer;void dijkstra(int n, vector& gates, vector.. 2024. 3. 22.
[프로그래머스] 연속된 부분 수열의 합 다시 푸는 문제 !마찬가지로 투포인터를 이용해 풀이할 수 있었다.#include #include #include #include using namespace std;int cmp(pair a, pair b) { int aLen = a.second - a.first; int bLen = b.second - b.first; if(bLen == aLen) return a.first solution(vector sequence, int k) { vector> answer; int result = 0; int j = 0; for(int i = 0; i    다시 풀었다.투포인터는 풀 때마다 어렵다 ㅎㅎ투포인터는 두 가지 접근 방법이 있는데 1. 오른쪽이 될떄까지.. 2024. 3. 21.
[프로그래머스] 연속 부분 수열 합의 개수 저엉말 몇달만에 다시 푸는 알고리즘 문제. 옛날에는 이 문제 정말 어려워했는데, 지금 보니 왜 간단하지.. 명상과 자기객관화 + 우테코의 힘인가..? 코틀린으로 풀어보고 싶었는데, 인자가 IntArray가 와서 바로 C++로 풀었다. #include #include #include using namespace std; int solution(vector elements) { int answer = 0; int size = elements.size(); set tire; for(int i = 0; i < size; i++) { int result = 0; for(int j = i; j < i + size; j++) { int index = j % size; result += elements[index]; .. 2024. 3. 19.
반응형