알고리즘 공부

less than 1 minute read

방금 그곡 - 2018 카카오
https://programmers.co.kr/learn/courses/30/lessons/17683
아 어떻게 풀지는 알겠는데 인간적으로 너무 길다..
진짜 심심할때 다시 할게요..
나누는 부분과 시간계산 부분을 좀 더 효율적인 방법으로 해보자
음계 #들어가는 것도 구분해야한다.

#include <string>
#include <vector>
#define TIME 5
using namespace std;

string solution(string m, vector<string> musicinfos) {
    string answer = "";
    vector<string> tmpMusic;
    vector<pair<int, pair<string, string>>> Musics;
    for (int i = 0; i < musicinfos.size(); i++) {
        string tmp = "";
        for (int j = 0; j < musicinfos[i].size(); j++) {
            if (musicinfos[i][j] != ',') {
                tmp += musicinfos[i][j];
            } else {
                tmpMusic.push_back(tmp);
                tmp.clear();
            }
        }
    }
    pair<int, int> start;
    pair<int, int> end;
    string tmpnum = "";
    tmpnum = tmpMusic[0][0] + tmpMusic[0][1];
    int startHour = atoi(tmp.c_str());
    start.first = startHour;
    tmpnum.clear();
    tmpnum = tmpMusic[0][3] + tmpMusic[0][4];
    int startMinute = atoi(tmp.c_str());
    start.second = startMinute;
    tmpnum.clear();

    tmpnum = tmpMusic[1][0] + tmpMusic[1][1];
    int endHour = atoi(tmp.c_str());
    start.first = endHour;
    tmpnum.clear();
    tmpnum = tmpMusic[1][3] + tmpMusic[1][4];
    int endMin = atoi(tmp.c_str());
    start.second = endMin;
    tmpnum.clear();

    if (end.second < start.second) {
        end.first--;
        end.second += 60;
    }
    int times = (end.second - start.second) + (end.first - start.first) * 60;
    Musics.push_back(make_pair(times, make_pair(tmpMusic[2], tmpMusic[3])));

    for(int i =0;i<Musics.size();i++){
        if(Musics[i].second.second)
    }
    return answer;
}

소요시간; 1시간?