알고리즘(51)
-
프로그래머스 연속 펄스 부분 수열의 합 c++
#include #include #include using namespace std; long long plusDp[500001]; long long minusDp[500001]; long long solution(vector sequence) { long long answer = 0; vector plusSequence, minusSequence; // 펄스 수열 두가지를 곱해서 두개의 수열을 만들었다 for (int i=0;i
2023.10.26 -
프로그래머스 타겟넘버 c++
#include #include using namespace std; int Target; int Answer; vector Numbers; void dfs(int cnt, int curr) { if (cnt >= Numbers.size()) { if (curr == Target) { Answer++; } return; } dfs(cnt + 1, curr + Numbers[cnt]); dfs(cnt + 1, curr - Numbers[cnt]); } int solution(vector numbers, int target) { int answer = 0; Target = target; Numbers = numbers; dfs(0, 0); answer = Answer; return answer; } int ..
2023.10.26 -
프로그래머스 가장 먼 노드 c++ 그래프 탐색
#include #include #include #include #include using namespace std; int N, max_n; vector v[50001]; int visited[500001]; int solution(int n, vector edge) { N=n; int answer = 0; for (int i=0;i
2023.10.25 -
프로그래머스 베스트 앨범 c++ map
vector answer; map m; map M; for (int i = 0;i < genres.size();i++) { m[genres[i]] += plays[i]; } for (auto it : m) { M[it.second] = it.first; } M 이라고 선언한 map에 많이 재생된 순서로 노래를 정렬했다. Map은 key 값을 기반으로 정렬이 되므로 key로 정렬한 후에 벡터로 담아서 다시 정렬을 해야한다. 이때 정렬을 위한 boolean 함수를 작성했다. #include #include #include #include #include using namespace std; bool cmp(pair a, pair b) { if (a.first != b.first) { return a.firs..
2023.10.25 -
프로그래머스 완주하지 못한 선수 해시
hash를 사용해서 쉽게 구현 가능한 문제이다. #include #include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = ""; unordered_map m; for (int i = 0;i < participant.size();i++) { m[participant[i]]++; } for (int i = 0;i < completion.size();i++) { m[completion[i]]--; } for (auto it : m) { if (it.second != 0 ){ answer += it.first; } } return answer; }
2023.10.25 -
프로그래머스 폰켓몬 c++ unordered_map 해시
간단한 구현 문제이라서 unordered_map을 사용했다. unordered_map은 해시 테이블을 기반으로 키-밸류 쌍을 저장한다. 검색 연산에 뛰어나며 평균적으로 O(1)의 시간 복잡도를 가지는 해시 테이블을 활용해 데이터를 저장한다. set은 중복되지 않는 정렬된 요소를 저장하며 레드 블랙 트리를 기반으로 한다. 중복이 허용되지 않으며 정렬된 상태가 유지된다. unordered_map은 속도가 빠르며 정렬되지 않는다 . #include #include #include #include using namespace std; int solution(vector nums) { int answer = 0; unordered_map m; for (int i = 0;i < nums.size();i++) { m..
2023.10.25