ABOUT ME

์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์šฉ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹น~ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋Š” https://velog.io/@ows3090 ์— ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Today
Yesterday
Total
  • [Programmers] Lv3. ์—ฌํ–‰๊ฒฝ๋กœ
    SW Test/Programmers 2020. 3. 29. 01:15
    ๋ฐ˜์‘ํ˜•
    • ์ด ๋ฌธ์ œ๋Š” C++๋กœ ํ’€์ด๋ฅผ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    ๋ฌธ์ œ

    ์˜ˆ์ œ


    ํ’€์ด

    #include <string>
    #include <vector>
    #include <algorithm>
    #include <utility>
    using namespace std;
    bool check=false; // ์ตœ์†Œ ํŒ๋‹จ ๋ณ€์ˆ˜
    vector<string> answer; // ๋‹ต์ด ๋ ์ˆ˜ ์žˆ๋Š” ๋ฒกํ„ฐ
    vector<string> result; // ์ •๋‹ต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฒกํ„ฐ
    // ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๊ฐ€ ์•ž์„œ๋Š” ๊ฒฝ๋กœ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋น„๊ตํ•จ์ˆ˜
    bool cmp(pair<string,int> a,pair<string,int> b){
    return a.first<b.first;
    }
    // ํƒ์ƒ‰ dfs
    void dfs(string str,vector<int>& v, vector<vector<string>>& tickets){
    bool flag=true;
    for(int i=0;i<v.size();i++){
    if(v[i]==0){
    flag=false;
    }
    }
    if(flag){
    if(!check){
    for(int i=0;i<answer.size();i++){
    result.push_back(answer[i]);
    check=1;
    }
    }
    return;
    }
    vector<pair<string,int>> data;
    for(int i=0;i<v.size();i++){
    if(tickets[i][0]==str && v[i]==0){
    data.push_back(make_pair(tickets[i][1],i));
    }
    }
    sort(data.begin(),data.end(),cmp);
    for(int i=0;i<data.size();i++){
    pair<string,int> p=data[i];
    answer.push_back(p.first);
    v[p.second]=1;
    dfs(p.first,v,tickets);
    v[p.second]=0;
    answer.pop_back();
    }
    }
    // ICN๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ICN์˜ ๋ฌธ์ž์—ด์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฒกํ„ฐ๋ฅผ ์ฐพ๊ธฐ
    // ICN์‹œ์ž‘ํ•ด์„œ ๋„์ฐฉํ•˜๋Š” ๊ณตํ•ญ์„ ๋ฒกํ„ฐ์— ๋‹ด์•„ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ •๋ ฌ
    // ๊ฐ€์žฅ ์•ž๋ถ€๋ถ„์˜ ๊ณตํ•ญ์œผ๋กœ ์ถœ๋ฐœํ•˜์—ฌ ๋ชจ๋“  ๊ณตํ•ญ์„ ํƒ์ƒ‰ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ๋‹ต ์ถœ๋ ฅ
    // ์ค‘์š”!! ๊ฐ€์žฅ ์–ด๋ ค์› ๋˜ ์  : ํ•ด๋‹ต answer์„ ์–ด๋–ป๊ฒŒ ์–ป์„ ๊ฒƒ์ธ๊ฐ€?
    // ๋‚˜๋Š” ์ „์—ญ๋ณ€์ˆ˜๋กœ ํ’€์—ˆ์ง€๋งŒ, ์ข‹์€ ๋‹ต์•ˆ์œผ๋กœ ์•ŒํŒŒ๋ฒณ์ด ํฌ๊ธฐ๊ฐ€ ๋ฌด์กฐ๊ฑด 3์ด๋ฏ€๋กœ string์— ๋„ฃ์–ด 3๋ฌธ์ž์”ฉ ๋Š์–ด์„œ ์ฝ๊ธฐ
    // string์€ ํฌ๊ธฐ๋น„๊ต๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— answer, result๋กœ ๋‚˜๋ˆŒ ํ•„์š”๋„ ์—†๋‹ค
    vector<string> solution(vector<vector<string>> tickets) {
    vector<int> v(tickets.size(),0);
    answer.push_back("ICN");
    dfs("ICN",v,tickets);
    return result;
    }



    • ์ถ”๊ฐ€๋กœ ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ์ˆ˜์ •ํ•  ์‚ฌํ•ญ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.
    ๋ฐ˜์‘ํ˜•
Designed by Tistory.