목록알고리즘 (47)
Study
코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 더보기 #include #include #include #include using namespace std; bool cmp(paira, pair b){ return a.second > b.second; } void DFS(map& dic, string& order, string tmp, int index, int depth){ if(depth == tmp.length()){ dic[tmp]++; return; } for(int i = index; i
코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 더보기 #include #include #include #include using namespace std; vector solution(vector record) { vector answer; vector temp; map reserve; for(int i = 0; i
코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 더보기 #include #include using namespace std; int answer = 0; void targetNumber(vector numbers, int target, int sum, int count) { if(count == numbers.size()) { if(sum == target) answer++; return; } targetNumber(numbers, target, sum+n..
코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 더보기 #include #include using namespace std; int solution(int n) { int answer=0; for(int i=1; i
코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 더보기 #include #include #include using namespace std; int solution(vector board, vector moves) { int answer = 0; stack s; for(int i=0;i
코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr ★풀이 방법 : 스택이용(짝을 짓는 문제는 보통 stack을 이용함) 스택에 짝이 없는 것만 삽입한다. 짝을 찾았다면 top()(스택의 가장 위에 있는 것)과 같은 것을 찾았다는 것이므로 가장 최근에 들어온 것을 스택에서 제거 일반적인 문자열 다루는 방법으로 풀면 효율성에서 실패!!가 뜸 더보기 #include #include using namespace std; int solution(string s) { int answer = 0; for(int..
코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 더보기 #include #include #include using namespace std; bool prime(int x){ if(x == 0 || x == 1) return 0; for(int i=2; i
코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 더보기 #include #include #include #include using namespace std; bool cmp(pair a, pair b) { if(a.first == b.first) { if(a.second b.first) { return true; } else { return false; } } vector solution(int N, vector stages) { vector answer; vector reserve; sort(stages.b..