[C_C++]코딩테스트 연습/[프로그래머스] level 2

    [프로그래머스] 프린터 (pair, priority queue) - C++ 스택&큐

    [프로그래머스] 프린터 (pair, priority queue) - C++ 스택&큐

    max_element를 이용한 풀이 max_element는 algorithm 헤더에 있는 함수다. 큐에는 사용할 수 없고, 배열에 사용할 수 있다. 형태 : *max_element(v.begin(), b.end()) int solution(vector priorities, int location) { int answer = 0; queue waiting;//인덱스 큐 for (int i = 0; i < priorities.size(); i++) { waiting.push(i); } int max_value = *max_element(priorities.begin(), priorities.end()); while (!waiting.empty()) { int cur_index = waiting.front()..

    [프로그래머스] 기능개발 - C++ 스택&큐

    [프로그래머스] 기능개발 - C++ 스택&큐

    내 풀이 - 큐 사용 1. 진도가 100이 되려면 며칠이 걸리는지 days 벡터에 넣어논다. 남은 진도율 : 100 - progresses 작업속도 : speeds 남은 진도율에서 작업속도를 나누면 진도율이 남는 경우가 있다. 이 경우 1을 더해야 한다. 하지만 딱 맞아 떨어지는 경우에는 1을 더할 필요가 없다. => 100이 아니라 99에서 빼면 모든 경우에 1을 더해도 된다. //예시 99-93 = 6, 6/1 + 1 = 7 99-30 = 69, 69/30 +1 = 3 2. 첫번째 days 요소를 큐에 넣어놓는다. 그리고 큐의 맨앞과 days를 비교해서 뒤에 오는 days가 더 작으면 큐에 붙인다. 3. 다음 days가 더 크면 큐의 사이즈를 answer에 붙인다. 그리고 큐를 재선언해서 비운다. 4..

    [C++] 프로그래머스 hash 2 - 위장

    [C++] 프로그래머스 hash 2 - 위장

    [Level 2] 내 풀이 옷의 종류와 개수를 담는 unordered_map을 만든다. 예를 들어 얼굴 2, 상의 1, 하의 1 일 경우를 생각해보면 안 입는 경우를 0으로 두어 (0,1,2), (0,1), (0,1) 을 갖는다고 생각할 수 있다. 적어도 하나 이상은 입으므로 (옷 종류마다의 개수+1)끼리 곱한 후 전부 0인 경우 1가지를 빼주면 된다. (3*2*2 - 1 = 11) int solution(vector clothes) { int answer = 1; unordered_map map; for (auto i : clothes) { map[i[1]]++; } for (auto i : map) { answer *= i.second + 1; } return answer - 1; }

    [C++] 프로그래머스 hash 2 - 전화번호 목록

    [C++] 프로그래머스 hash 2 - 전화번호 목록

    [Level 2] 처음 내 풀이 : 정확성 83.3(만점) 효율성 8.3 = 91.7 로 실패 bool solution(vector phone_book) { sort(phone_book.begin(), phone_book.end()); for (int i = 0; i < phone_book.size(); i++) { for (int j = i + 1; j < phone_book.size(); j++) { int split_size = phone_book[i].size(); cout

    [C++] 프로그래머스 hash 1- 완주하지 못한 선수 (vector만 이용 / 해시 이용)

    [C++] 프로그래머스 hash 1- 완주하지 못한 선수 (vector만 이용 / 해시 이용)

    vector와 algorithm 헤더를 이용한 풀이 sort를 이용해 참가자와 완주자 배열을 정렬해주면, 같은 이름의 참가자들은 각 배열에서 같은 위치에 위치하게 된다. (이 때 sort는 algorithm 헤더를 선언해줘야 사용 가능하다.) 만약 완주하지 못한 참가자가 있다면 각 위치에 다른 이름이 위치하게 되므로 return으로 해당 참가자 이름을 돌려주고, 끝까지 다른 위치가 없다면 참가자가 한명 많으므로 마지막 참가자 이름을 돌려준다. #include #include #include #include using namespace std; string solution(vector participant, vector completion) { sort(participant.begin(), particip..