Coding Test Study - 3주차

Checking·2021년 5월 2일
0

Coding Test Study

목록 보기
3/22

해시 (Hash)

위장

#include <string>
#include <vector>
#include <map>

using namespace std;

int solution(vector<vector<string>> clothes) {
    int answer = 1;
    map <string, int> clothes_list;

    for (int i=0; i<clothes.size(); i++) {
        clothes_list[clothes[i][1]]++;
    }

    for (pair <string, int> _times:clothes_list) {
        answer *= (_times.second+1);
    }

    return answer - 1;
}

/*
정확성  테스트
  테스트 1 〉	통과 (0.03ms, 3.97MB)
  테스트 2 〉	통과 (0.01ms, 3.95MB)
  테스트 3 〉	통과 (0.01ms, 3.77MB)
  테스트 4 〉	통과 (0.02ms, 3.91MB)
  테스트 5 〉	통과 (0.01ms, 3.94MB)
  테스트 6 〉	통과 (0.01ms, 3.92MB)
  테스트 7 〉	통과 (0.02ms, 3.96MB)
  테스트 8 〉	통과 (0.01ms, 3.89MB)
  테스트 9 〉	통과 (0.01ms, 3.93MB)
  테스트 10 〉	통과 (0.01ms, 3.96MB)
  테스트 11 〉	통과 (0.01ms, 3.95MB)
  테스트 12 〉	통과 (0.02ms, 3.92MB)
  테스트 13 〉	통과 (0.02ms, 3.85MB)
  테스트 14 〉	통과 (0.01ms, 3.72MB)
  테스트 15 〉	통과 (0.01ms, 3.96MB)
  테스트 16 〉	통과 (0.01ms, 3.98MB)
  테스트 17 〉	통과 (0.01ms, 3.79MB)
  테스트 18 〉	통과 (0.01ms, 3.97MB)
  테스트 19 〉	통과 (0.02ms, 3.98MB)
  테스트 20 〉	통과 (0.01ms, 3.97MB)
  테스트 21 〉	통과 (0.01ms, 3.94MB)
  테스트 22 〉	통과 (0.01ms, 3.95MB)
  테스트 23 〉	통과 (0.01ms, 3.97MB)
  테스트 24 〉	통과 (0.02ms, 3.98MB)
  테스트 25 〉	통과 (0.02ms, 3.89MB)
  테스트 26 〉	통과 (0.02ms, 3.96MB)
  테스트 27 〉	통과 (0.01ms, 3.93MB)
  테스트 28 〉	통과 (0.01ms, 3.96MB)
  
채점 결과
  정확성: 100.0
  합계: 100.0 / 100.0
*/

베스트앨범

#include <string>
#include <vector>
#include <algorithm>
#include <map>

using namespace std;

bool compare(vector<int> a, vector<int> b) {
    if (a[2] != b[2]) return a[2] > b[2];
    else if (a[1] != b[1]) return a[1] > b[1];
    else return a[0] < b[0];
}

vector<int> solution(vector<string> genres, vector<int> plays) {
    vector<int> answer;

    map <string, int> total_genre_plays;
    vector <vector <int>> song_list;
    
    for (int i=0; i<genres.size(); i++) {
        total_genre_plays[genres[i]] += plays[i];
    }

    for (int i=0; i<genres.size(); i++) {
        song_list.push_back({i, plays[i], total_genre_plays[genres[i]]});
    }

    sort(song_list.begin(), song_list.end(), compare);

    answer.push_back(song_list[0][0]);

    for (int i=1, song_stack = 1; i<song_list.size(); i++) {
        if (song_list[i-1][2] != song_list[i][2]) {
            song_stack = 0;
        }

        if (song_stack < 2) {
            answer.push_back(song_list[i][0]);
            song_stack++;
        }
    }
    
    return answer;
}

/*
정확성  테스트
  테스트 1 〉	통과 (0.02ms, 3.97MB)
  테스트 2 〉	통과 (0.02ms, 3.89MB)
  테스트 3 〉	통과 (0.01ms, 3.72MB)
  테스트 4 〉	통과 (0.01ms, 3.98MB)
  테스트 5 〉	통과 (0.11ms, 3.98MB)
  테스트 6 〉	통과 (0.07ms, 3.89MB)
  테스트 7 〉	통과 (0.04ms, 3.93MB)
  테스트 8 〉	통과 (0.03ms, 3.79MB)
  테스트 9 〉	통과 (0.01ms, 3.93MB)
  테스트 10 〉	통과 (0.09ms, 3.93MB)
  테스트 11 〉	통과 (0.02ms, 3.93MB)
  테스트 12 〉	통과 (0.06ms, 3.96MB)
  테스트 13 〉	통과 (0.08ms, 3.9MB)
  테스트 14 〉	통과 (0.09ms, 3.95MB)
  테스트 15 〉	통과 (0.01ms, 3.84MB)
  
채점 결과
  정확성: 100.0
  합계: 100.0 / 100.0
*/
profile
(ง ᐖ)ว

0개의 댓글