프로그래머스(Programmers)
-
괄호변환 C++프로그래머스(Programmers) 2022. 1. 11. 23:00
"균형 잡힌 괄호 문자열" p가 매개변수로 주어질 때, 주어진 알고리즘을 수행해 "올바른 괄호 문자열"로 변환한 결과를 return 하도록 solution 함수를 완성해 주세요. 매개변수 설명 p는 '(' 와 ')' 로만 이루어진 문자열이며 길이는 2 이상 1,000 이하인 짝수입니다. 문자열 p를 이루는 '('와 ')'의 개수는 항상 같습니다. 만약 p가 이미 "올바른 괄호 문자열"이라면 그대로 return 하면 됩니다. 입출력 예 p result "(()())()" "(()())()" ")(" "()" "()))((()" "()(())()" 입출력 예에 대한 설명 입출력 예 #1 이미 "올바른 괄호 문자열" 입니다. 입출력 예 #2 두 문자열 u, v로 분리합니다. u = ")(" v = "" u가 ..
-
약수의 개수와 덧셈프로그래머스(Programmers) 2022. 1. 11. 00:00
한사항 1 ≤ left ≤ right ≤ 1,000 입출력 예 left right result 13 17 43 24 27 52 입출력 예 설명 입출력 예 #1 다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다. 수 약수 약수의 개수 13 1, 13 2 14 1, 2, 7, 14 4 15 1, 3, 5, 15 4 16 1, 2, 4, 8, 16 5 17 1, 17 2 따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다. 입출력 예 #2 다음 표는 24부터 27까지의 수들의 약수를 모두 나타낸 것입니다. 수약수약수의 개수 24 1, 2, 3, 4, 6, 8, 12, 24 8 25 1, 5, 25 3 26 1, 2, 13, 26 4 27 1, 3, 9, 27 ..
-
폰켓몬 C++프로그래머스(Programmers) 2022. 1. 10. 23:23
제한사항 nums는 폰켓몬의 종류 번호가 담긴 1차원 배열입니다. nums의 길이(N)는 1 이상 10,000 이하의 자연수이며, 항상 짝수로 주어집니다. 폰켓몬의 종류 번호는 1 이상 200,000 이하의 자연수로 나타냅니다. 가장 많은 종류의 폰켓몬을 선택하는 방법이 여러 가지인 경우에도, 선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 return 하면 됩니다. 입출력 예 nums result [3,1,2,3] 2 [3,3,3,2,2,4] 3 [3,3,3,2,2,2] 2 입출력 예 설명 입출력 예 #1 문제의 예시와 같습니다. 입출력 예 #2 6마리의 폰켓몬이 있으므로, 3마리의 폰켓몬을 골라야 합니다. 가장 많은 종류의 폰켓몬을 고르기 위해서는 3번 폰켓몬 한 마리, 2번 폰켓몬 한 마리, 4번..
-
메뉴 리뉴얼 C++프로그래머스(Programmers) 2022. 1. 9. 22:17
가장 많이 함께 주문된 단품 메뉴 조합에 따라 "스카피"가 만들게 될 코스요리 메뉴 구성 후보는 다음과 같습니다. 코스 종류 메뉴 구성 설명 요리 2개 코스 A, C 1번, 2번, 4번, 6번 손님으로부터 총 4번 주문됐습니다. 요리 3개 코스 C, D, E 3번, 4번, 6번 손님으로부터 총 3번 주문됐습니다. 요리 4개 코스 B, C, F, G 1번, 5번 손님으로부터 총 2번 주문됐습니다. 요리 4개 코스 A, C, D, E 4번, 6번 손님으로부터 총 2번 주문됐습니다. [문제] 각 손님들이 주문한 단품 메뉴들이 문자열 형식으로 담긴 배열 orders, "스카피"가 추가하고 싶어 하는코스요리를 구성하는 단품 메뉴들의 개수가 담긴 배열 course가 매개변수로 주어질 때, "스카피"가 새로 추가하게..
-
실패율 C++프로그래머스(Programmers) 2022. 1. 5. 00:09
제한사항 스테이지의 개수 N은 1 이상 500 이하의 자연수이다. stages의 길이는 1 이상 200,000 이하이다. stages에는 1 이상 N + 1 이하의 자연수가 담겨있다. 각 자연수는 사용자가 현재 도전 중인 스테이지의 번호를 나타낸다. 단, N + 1 은 마지막 스테이지(N 번째 스테이지) 까지 클리어 한 사용자를 나타낸다. 만약 실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 먼저 오도록 하면 된다. 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0 으로 정의한다. 입출력 예 N stages result 5 [2, 1, 2, 6, 2, 4, 3, 3] [3,4,2,1,5] 4 [4,4,4,4,4] [4,1,2,3] 입출력 예 설명 입출력 예 #1 1번 스테이지에는 총..
-
N으로 표현 C++프로그래머스(Programmers) 2022. 1. 2. 10:45
입출력 예 N number return 5 12 4 2 11 3 입출력 예 설명 예제 #1 문제에 나온 예와 같습니다. 예제 #2 11 = 22 / 2와 같이 2를 3번만 사용하여 표현할 수 있습니다. #include #include #include #include // unorderd_set사용 using namespace std; int get_basic(int N, int cnt) { int res = 0; while (cnt > 0) { cnt -= 1; res += N * pow(10, cnt); } return res; } int solution(int N, int number) { int answer = -1; vector s(8); int idx=1; if(N == number) { ret..
-
짝지어 제거하기 C++프로그래머스(Programmers) 2021. 12. 31. 00:31
입출력 예 s result baabaa 1 cdcd 0 입출력 예 설명 입출력 예 #1 위의 예시와 같습니다. 입출력 예 #2 문자열이 남아있지만 짝지어 제거할 수 있는 문자열이 더 이상 존재하지 않기 때문에 0을 반환합니다. #include #include #include using namespace std; int solution(string s) { int answer = 0; stack st; for(int i=0; i 효율성과 정확성을 위해 stack을 사용하면 간단한 문제였습니다. *저는 pair를 사용하면서 비교를 하다 보니 효율성에서도 정확성에서도 틀리고 말았습니다. (그래도 replace 함수 공부는 하게 되었습니다.) => 질문글들을 보면 stack에 쌓으며 가장 위에 있는 값과 현재 ..
-
체육복 C++프로그래머스(Programmers) 2021. 12. 30. 00:21
입출력 예 n lost reserve return 5 [2, 4] [1, 3, 5] 5 5 [2, 4] [3] 4 3 [3] [1] 2 입출력 예 설명 예제 #1 1번 학생이 2번 학생에게 체육복을 빌려주고, 3번 학생이나 5번 학생이 4번 학생에게 체육복을 빌려주면 학생 5명이 체육수업을 들을 수 있습니다. 예제 #2 3번 학생이 2번 학생이나 4번 학생에게 체육복을 빌려주면 학생 4명이 체육수업을 들을 수 있습니다. #include #include #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { int answer=0; bool lostArr[31]={false}; bool..