본문 바로가기

문제 풀이

(293)
시소 짝꿍 문제 위치 : https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr #include #include #include using namespace std;long long solution(vector weights) { long long count = 0; unordered_map weight_count; // 몸무게 개수 세기 for (int w : weights) { weight_count[w]++; } // 가능한 거리 비율 (1:1..
월간 코드 챌린지 시즌1 > 쿼드압축 후 개수 세기 문제 위치 : https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 순간 쿼드 압축이란 개념에 살짝 놀랐지만 다행히 직접 쿼드 압축의 결과를 구현할 필요는 없었다.쿼드 압축이 진행되었을 때 나눠지는 구역의 수를 0과 1의 갯수로 간접적으로 묻는 편에 가깝다고 볼 수 있다. 이를 위해 함수를 크게 두 가지로 나누어 구현하였다. 먼저 isUniform 함수이다. 이는 범위내의 값들이 모두 동일한 값인지 따라서 압축가능한지 여부를 판단하는 함수이다. 그 다음은 QuadTree를 흉내내는 함수이다.쿼드 ..
[Silver V] UCPC는 무엇의 약자일까? - 15904 [문제 위치]https://www.acmicpc.net/problem/15904[문제 풀이]그리디 기법으로 조건을 만족하는게 있는지마다 확인하여 문제를 풀었다. #include #include using namespace std;int main(){ string sheeped = "UCPC"; string not_sheep; int pos = 0; getline(cin, not_sheep); for(char curr : not_sheep){ if(sheeped[pos]==curr){ pos++; } if(pos==4) break; } if(pos==4) cout  위의 표와 같은 방식으로 동작하게 된다.
2018 KAKAO BLIND RECRUITMENT > [1차] 프렌즈4블록 문제 위치 : https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 코드는 3가지로 구성되어있다.1. 블록을 지우는 부분2. 지워진 판에서 떨어짐을 구현하는 부분3. 마지막에 빈 공간을 세어 사라진 블록의 갯수를 구하는 부분 1번의 경우 set을 이용하여 지워야할 블록의 위치를 일괄적으로 지웠고2번의 경우 1번 이후에 위의 블록과 빈공간을 swap하여 둘 사이의 간격과 무관하게 떨어짐을 구현하였다. 코드 길이가 길고 복잡하지만 특별히 어려운 내용이 포함되지는 않은 문제이다.#include #inc..
[Silver III] 등차수열을 만들어요 - 32298 [문제 위치]https://www.acmicpc.net/problem/32298[문제 풀이]소수 판별이 가능한지 그리고 이것을 고려하여 등차수열을 만들 수 있는지 묻는 문제이다.다만, 이 문제는 범위가 매우 넓다는 점을 유의해야한다.따라서, 모든 정수에 대하여 반복적으로 소수여부를 파악하는 것은 좋지 못하다. 따라서, 제곱을 이용한 일반적 소수 판별을 하되 그것의 배수들은 모두 소수가 아님을 이용하는 에라토스테네스의 체를 구현하여 사전에 소수인 수와 그렇지 않은 수들을 구분해야한다. 이후 소수가 아닌 수들을 기준으로 등차수열을 만들다가 소수가 포함되어야 하는 경우가 나올 때 실패를 반환하는 구조를 구현해주었다.#include #include using namespace std;#define FASTIO ..
[Silver V] 이장님 초대 - 9237 [문제 위치]https://www.acmicpc.net/problem/9237[문제 풀이]반복문을 통하여 이장님이 방문이 가능할 때마다 가산해주면 된다.마지막 날은 별도로 가산하였다.#include #include #include using namespace std;int main() { int N; vector v; cin >> N; for(int i=0;i> x; v.push_back(x); } sort(v.rbegin(),v.rend()); int days=0; for(int i=0;i
[Silver V] 6174 - 9047 [문제 위치]https://www.acmicpc.net/problem/9047[문제 풀이]Kaprekar's routine을 구현해보는 문제이다. Kaprekar's routine을 진행시키기 위해 먼저 작업할 수를 문자열로 바꾸고 정렬한다. 이후 최대최소를 만들어 차를 구해 그 값을 넣으면 된다. 아래는 그 구현이다.#include #include #include using namespace std;int main() { int T; cin >> T; while (T--) { int x; cin >> x; int cnt = 0; while (x != 6174) { string xx = to_string(x); while (xx.length() != 4) xx = "0" + xx; sor..
2021 KAKAO BLIND RECRUITMENT > 메뉴 리뉴얼 문제 위치 : https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이 문제도 모든 조합을 판별해야는 문제이다. 따라서 조합을 만드는 부분에 있어서는 백트래킹 비법을 사용하는데 이는 https://unlock546.tistory.com/410 소수 찾기" data-og-description="문제 위치 : https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 ..