Lv2(51)
-
[Programmers] Lv2. [3차] n진수 게임 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 문제를 보자마자 무슨 동아리 사람들이 이러고 노나 싶었습니다. 카카오에 가는 사람들은 다 저러고 노는 걸까요?... 아무튼, 저는 이 문제의 의도를 파악하기 힘들어서 시간이 좀 걸렸습니다. 다음 내용을 이해하는 데 좀 걸렸어요. 한 사람이 말하는 숫자는 무조건 한 자리 숫자다. (십진수 "3" -> 이진수 "11"로 변환하더라도 한 사람마다 한 자리씩 읽는다.) 예제인 n = 2, t = 4, m = 2, p = 1로 보겠습니다. 우선 십진수 0부터 차례대로 2진수로 변환해보면..
2023.06.21 -
[Programmers] Lv2. 더 맵게 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 문제 유형도 힙(Heap)이라 분류되어 있었지만, 지문을 읽자마자 최소 힙(Min Heap)이 생각나는 문제였습니다. 입력 범위 숫자가 매우 크므로, 오버플로우만 조심하면 손쉽게 풀 수 있었습니다. ✏️소스 코드 및 결과 #include #include #include using namespace std; using LL = long long; int solution(vector scoville, int K) { int answer = 0; priority_queue scovi..
2023.06.21 -
[Programmers] Lv2. k진수에서 소수 개수 구하기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 소수 판별 부분에서 int 오버플로우가 날 수 있으므로, long long 자료형으로 작성하였습니다. 저 부분 때문에 20분은 소모한 듯해요... 1. n을 k진수로 바꾸어, 문자열로 저장하기 2. k진수 문자열에서 '0'을 기준으로 문자열 분리하기 3. 각 분리된 문자열들을 소수 검사하기 ✏️소스 코드 및 결과 #include #include #include #include using namespace std; string GetKNumber(int n, int k) { st..
2023.06.21 -
[Programmers] Lv2. 타겟 넘버 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 DFS로 풀 수 있습니다. 깊이를 numbers의 크기만큼 내려 갔을 때, 이 때까지의 연산 결과와 target이 같으면 answer++ 해주면 됩니다. 더하는 경우와 빼는 경우 두 가지만 있으므로 2개만 재귀로 작성하면 되겠네요. ✏️소스 코드 및 결과 #include using namespace std; void DFS(const vector& numbers, const int& target, int sum, int idx, int& answer) { if (idx == n..
2023.06.20 -
[Programmers] Lv2. 뉴스 클러스터링 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 중복이 가능한 원소들을 지니고 있어야 하므로, multiset을 사용하였습니다. 1. 주어진 문자열을 두 글짜씩 끊어, 다중집합 만들기 끊어서 만든 두 글자 중 하나라도 알파벳이 아니라면 다음 문자로 넘어간다. 두 글자 모두 알파벳이라면 다중집합에 원소 추가 #include #include using namespace std; multiset CreateMultipleSet(const string& str) { multiset result; int strLength = str...
2023.06.20 -
[Programmers] Lv2. 기능개발 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 큐(Queue)를 이용하여 풀었습니다. 풀이과정은 다음과 같습니다. for 문을 통해, 각 작업을 순회 현재 작업의 배포 가능한 남은 일수를 계산 큐에 아무것도 없다면, push()하고 다음 루프로 이동 큐의 front보다 현재 작업의 배포 가능한 남은 일수가 작다면, front가 배포 될 때 같이 배포되므로 push() 아니라면, 현재 큐에 있는 원소 개수를 answer에 추가하고, 큐 싹 비우기 다 비운 후, 현재 작업의 배포 가능한 남은 일수를 push() for 문을 다..
2023.06.16