Make Unreal REAL.
article thumbnail
Level 1. 체육복

Level 1. 체육복 굉장히 난잡하게 풀었다. 입출력 예시가 오름차순으로 되어 있어서 정렬된 상태로 주어지는 줄 알았는데 아닌 경우도 있어서 정렬을 해야했다. 탐욕법을 하되 작은 수부터 처리해야 하기 때문이다. 첫 번째 for문은 여벌을 가진 학생 중 도난당한 학생을 제거하는 부분이다. 번호가 작은 학생부터 앞번호, 뒷번호 차이가 ±1 인 경우를 세어 해결했다. #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { int nLost; vector t_lost; sort(lost.begin(), lost.end()); sort(reserve.begin(), reserve.end())..

article thumbnail
5597. 과제 안 내신 분..?

5597. 과제 안 내신 분..? #include using namespace std; int main(int argc, char* argv[]) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); bool students[31] = {false}; for (int i = 0; i > id; students[id] = true; } for (int i = 1; i

article thumbnail
11279. 최대 힙

11279. 최대 힙 우선순위 큐의 사용법을 묻는 간단한 문제였다. #include #include #include using namespace std; using uint = unsigned int; int main(int argc, char* argv[]) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; priority_queue prque; ostringstream oss; cin >> N; while (N--) { uint num; cin >> num; if (num) { prque.emplace(num); } else if (prque.empty()) { oss

article thumbnail
정답률보다 오답률이 높을 때

프로그래머스 문제를 풀던 도중 예시를 모두 통과했으나 제출해보니 대부분의 테스트 케이스에서 실패했다. 이런 경우는 알고리즘이 틀리기보다는 조건 자체를 잘못 이해한 경우가 많다. 아래는 내가 잘못 이해한 조건이다. 나는 이 조건을 x가 아닌 다른 글자들이 아니라 x가 아닌 다른 글자들 중이라고 이해하여 아래와 같은 잘못된 풀이를 작성했다. int solution(string s) { int answer = 0; size_t length = s.length(); unordered_map umap; for (int i = 0; i < length; ++i) { ++umap[s[i]]; int minCount = INT_MAX; for (pair pr : umap) { if (pr.second == minCou..

article thumbnail
Level 1. 문자열 나누기

Level 1. 문자열 나누기 처음에 문제의 조건을 x가 아닌 다른 글자들이 아니라 x가 아닌 다른 글자들 중으로 잘못 이해하여 정답률이 31%가 나왔다. // 이 코드는 틀린 풀이이다. #include #include #include #include using namespace std; int solution(string s) { int answer = 0; unordered_map umap; for (int i = 0; i < s.length(); ++i) { ++umap[s[i]]; int minCount = INT_MAX; for (pair pr : umap) { if (pr.second == minCount) { s = s.substr(i + 1); ++answer; umap.clear(); i..

article thumbnail
서로소 집합(Disjoint Set)

코딩 테스트를 위한 자료 구조와 알고리즘 with C++ 서로소 집합(a.k.a Union Find) 트리의 집합으로 구성된 숲(Forest)이다. 각 트리는 ID로 표현되며, 순위(Rank)와 부모에 대한 참조를 갖는다. 초기화 시 각 트리는 1 ~ N까지의 ID를 가지며, 순위는 0이고 부모에 대한 참조는 자기 자신이 된다. 서로소 집합의 연산들 make_set(x) 순위가 0이고 부모에 대한 참조가 자기 자신이며 x를 ID로 갖는 트리를 서로소 집합에 추가한다. find(x) 부모에 대한 참조를 따라 이동하여 트리의 루트를 반환한다. union(x, y) x, y 각각의 루트를 찾는다. 루트가 같으면 아무 것도 하지 않는다. 루트가 다르면 순위가 높은 루트를 낮은 루트의 부모로 설정한다. 서로소 집..

검색 태그