programmers 11

programmers 영어 끝말잇기

programmerslevel2 영어 끝말잇기위 이미지를 클릭하면 해당 문제로 이동합니다.#include #include #include using namespace std;vector solution(int n, vector words) { vector answer; unordered_map word_table; int wrong ,flag = 1; word_table.insert({words[0], 1}); for(int i =1; i해결 과정위의 코드는 algorithm라이브러리의 find함수를 이용해 해결한 후 다른 사람의 풀이에서 힌트를 얻어 unordered map을 추가로 활용한 코드이다. 제한 사항에서 단어들의 수가 100이하이기 때문에 배열 탐색을 아무리 많이해..

programmers N개의 최소공배수

programmerslevel2 N개의 최소공배수문제 설명주어진 숫자들의 최소공배수를 구하는 문제이다.#include #include #include using namespace std;int solution(vector arr) { int answer = 1; vector prime_num; for(int i = 2; i cnt(prime_num.size(), 0); for(int num : arr){ vector temp(prime_num.size(), 0); for(int i = 0; i해결 과정최소공배수를 어떻게 구해야 할지 헤매었다. 생각해낸 방법은 주어진 각각의 수들의 약수 중 소수의 개수를 구하고 그 소수들의 개수의 최대값끼리 곱하면 최소공배수가..

programmers 구명보트

programmerslevel2 구명보트문제 설명2인용 구명보트를 사용하여 다양한 몸무게의 사람들을 모두 탈출시키기 위해 필요한 최소한의 구명보트의 개수를 구하는 문제입니다.#include #include using namespace std;int solution(vector people, int limit) { int answer = 0; sort(people.begin(), people.end()); int i = 0, j = people.size()-1; while(j>=i){ if(people[i]+people[j]>limit){ answer++; j--; } else{ answe..

programmers JadenCase 문자열 만들기

programmerslevel2 JadenCase 문자열 만들기문제 설명JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳을 소문자인 문자열이다. 주어진 문자열을 JadenCase 규칙에 맞게 리턴하는 문제이다.제한조건문자열은 알파벳, 숫자, 공백문자로 이루어져 있다.숫자는 단어의 첫 문자로만 나온다.숫자로만 이루어진 단어는 없으며, 공백문자가 연속해서 나올 수 있다.풀이#include #include #include using namespace std;string solution(string s) { string answer = ""; vector space_arr; int space_cnt = 0; for(size_t a=0; a> temp){ ..

programmers 최솟값 만들기

programmerslevel2 최솟값 만들기문제 설명길이가 같고 자연수로 이루어진 두 배열이 주어지고 두 배열의 값들 중에서 중복 없이 하나씩 뽑아 곱셈을 한다. 이를 배열에 더이상 뽑을 숫자가 없을 때까지 진행하고 곱의 결과값들의 합의 최솟값을 구하는 문제이다.#include #include using namespace std;bool descend(int j, int k){ return j>k;}int solution(vector A, vector B){ int answer = 0; sort(A.begin(), A.end()); sort(B.begin(), B.end(), descend); for(size_t i=0; i 해결 과정처음에 보고 직관적으로 모든 경우의 수를 ..

programmers 올바른 괄호

programmerslevel2 올바른 괄호문제 설명괄호로 이루어진 문자열이 주어지고 해당 문자열 속의 괄호들이 올바르지 않게 열리있는 괄호가 있는지 없는지 확인하는 문제이다.#includeusing namespace std;bool solution(string s){ bool answer = false; int temp = 0; for(int i=0; i해결 과정처음에는 stack을 활용하는 문제라고 생각하고 괄호의 방향에 따라 vector에 1과 -1을 입력하고 벡터를 뒤에서부터 탐색해서 모든 요소들의 합이 0이면 모든 괄호가 짝은 지어져 있다이고 모든 요소들의 뺄셈이 -2이면 모든 괄호가 잘 닫혀있다라고 판단하고 해당 코드를 작성하였다.#include#include using nam..

programmers 최댓값과 최솟값

programmerslevel2 최댓값과 최솟값문제 설명공백으로 구분된 숫자들이 문자열로 주어지고 문자열 안의 숫자들 중 최솟값과 최댓값을 찾아 문자열로 리턴하는 문제이다.#include #include #include using namespace std;string solution(string s) { string answer = ""; int temp; istringstream iss(s); ostringstream oss; vector numbers; while (iss >> temp) numbers.push_back(temp); int min = numbers[0]; int max = numbers[0]; for (int num : numbers) ..