코딩테스트 준비/프로그래머스 26

[프로그래머스] - k번째 수(정렬) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 굳이 lamda를 한 번 써봤다. 코드 #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; int n = commands.size(); for (int tc=0;tc

[프로그래머스] - 베스트앨범(해시) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 고민을 많이 했다. level 3인 만큼 생각할 게 많았다. 1. 장르별로 plays수를 저장해야하고, 그것을 정렬할 수 있어야했다. Map에 우선 저장해놓고, vector로 받아와 comparator1를 이용해 정렬했다. map에 우선 저장을 해놓은 이유는 plays수를 합산하기 편해서이다. 2. plays수가 가장 많은 장르를 불러왔을 때, 그 장르에 속한 노래들의 고유번호를 알..

[프로그래머스] - 의상(해시) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 옷의 종류별로 map에 넣고 하나씩 들어올 때마다 +1씩 해줬다. 코드 #include #include #include using namespace std; int solution(vector clothes) { int answer = 0; map check_clothes; for (auto& c : clothes) { check_clothes[c[1]]++; } if (check_..

[프로그래머스] - 전화번호 목록(해시) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 map을 이용해 쉽게 풀 수 있었다. map에 저장할 때, 전화번호마다 접두사를 모두 저장했다. phone_book에서 불러운 전화번호가 map에 2개 이상 있다면, 그 전화번호는 다른 번호의 접두사인 것이다. 코드 #include #include #include using namespace std; bool solution(vector phone_book) { bool answer..

[프로그래머스] - 포켓몬(해시) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 처음 보고 level1인데 왤케 어렵나 했다. 쉽겠거니 하고, 다시 문제를 봤다. 쉬운 문제가 맞았다. 코드 #include #include using namespace std; int solution(vector nums) { int answer = 0; int n = nums.size(); int k = n / 2; //k는 가져갈 수 있는 포켓몬 수 map species; for..

[프로그래머스] - 완주하지 못한 선수(해시) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 map에다가 participant를 넣고, completion을 다시 뺐다. 코드 #include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = ""; map hash; for (auto& p : participant) { hash..