https://programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 풀이 (시간초과 1개) #include #include #include using namespace std; vector solution(vector id_list, vector report, int k) { vector answer; map repo; // report map s; // 신고받은 유저 for(int i = 0; i < report.size(); i++){ int idx = repor..
🍞 Algorithm/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 전역 변수 N을 선언해줘서 n 인덱스 값을 넣는다. sort함수를 써서 cmp 조건에 따라 오름차순 정렬한다. #include #include #include using namespace std; int N; bool cmp(string a, string b){ if(a[N] == b[N]) return a < b; else return a[N] < b[N]; } vector solution(vect..
https://programmers.co.kr/learn/courses/30/lessons/12901 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 month 배열에 금, 토, 일, 월, 화, 수, 목을 담아놓고, day 배열에 2016년엔 윤년인 것을 고려하여 숫자들을 담아놓는다. 만약 a = 5, b = 24라면 저번 달까지의 일 수를 더하고, 현재 달의 일수에서 하루를 뺀 수를 더하면 7로 나눈 나머지 수로 요일을 판별할 수 있다. #include #include using namespace std; string solution(int a,..
https://programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 signs이 참이면 더해주면 되고, 거짓이면 빼주면 된다. #include #include using namespace std; int solution(vector absolutes, vector signs) { int answer = 0; for(int i = 0; i < absolutes.size(); i++){ if(signs[i]) answer += absolutes[i]; else answe..
https://programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 참가자 중에 동명이인이 있을 수 있으므로, map에 participant key의 value값을 더해주고 completion일 경우 key의 value값을 빼준다. 마지막으로 map을 다 돌며 value값이 1인 경우일 때 출력해준다. 참가를 했지만, 완주를 못 했을 경우이기 때문이다. #include #include #include using namespace std; string solution(..
https://programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 문제를 잘못 읽어서 고생한 문제이다. 중요한 부분은 각 부서가 신청한 금액만큼을 모두 지원해줘야 되지만, 예산은 남아도 된다. 그러므로 일단 오름차순으로 정렬을 한 뒤, 하나씩 더하고 만약 예산을 넘는다면 지원을 하지 않고, 횟수를 줄여주는 식으로 구현하면 된다. 풀이1 #include #include #include using namespace std; int solution(vector d, in..
https://programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 0부터 9까지의 수를 일단 미리 더하고, 주어진 숫자들을 빼면 없는 값들의 합이 나온다. #include #include using namespace std; int solution(vector numbers) { int answer = 0; // 0부터 9까지의 합 int sum = 9 * 10 / 2; for(int i = 0; i < numbers.size(); i++){ sum -= numbe..
https://programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 일단 string형의 빈 str을 준비한다. 그리고 substr을 사용하여 각 영단어에 대응하는 숫자를 문자열에 더해줬다. 마지막에 int로 반환을 해야 되니 stoi함수를 써서 string을 int형으로 바꿔주었다. #include #include using namespace std; int solution(string s) { int answer = 0; string str = ""; for(in..
https://programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 소수 찾는 알고리즘은 에라토스테네스의 체를 사용했다. 3개의 수를 더할 때는 3중 for문을 사용하여 더해주었고, 더한 값을 num 배열에 담았을 때 0이 아니면 소수이므로 카운트해준다. 풀이1 #include #include #include using namespace std; const int NUM = 3000; int num[NUM]; void PrimeNum(){ for(int i = 2; i
https://programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 일단 lottos와 win_nums가 일치하는 개수를 세고, lottos의 0 개수를 센다. 최고로 일치하는 것은 번호가 일치하는 개수와 모르는 번호인 0의 개수의 합이다. 최저로 일치하는 것은 번호가 일치하는 개수만이다. 최고 순위는 7에서 최고로 일치하는 횟수를 빼주면 되고, 최저 순위는 7에서 최저로 일치하는 횟수를 빼주면 되는데 여기서 조건을 잘 걸어야 한다. 로또 맞는 번호가 하나도 없다면 ..