๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ”ฅ ์ผ๋‹จ ๋„์ „ํ•˜๋ผ!/ict ์ธํ„ด์‹ญ

[ICT์ธํ„ด์‹ญ] ict internship ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ›„๊ธฐ

728x90

 

์ง€์›์„œ ๋„ฃ๊ณ  ์„œ๋ฅ˜๋งˆ๊ฐ ๋ฉฐ์น  ๋’ค, ์ด๋ฉ”์ผ๋กœ ์ฝ”ํ…Œ ๋งํฌ๊ฐ€ ๋‚ ์•„์™”๋‹ค.

์ฒ˜์Œ์— ํ—ค๋ฉจ๋Š”๋ฐ ๊ทธ๋ƒฅ ์ด๋ฉ”์ผ ๋‚ด์šฉ ์ค‘์— Start Test ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ๋ฐ”๋กœ ์‘์‹œํ•  ์ˆ˜ ์žˆ๋Š”๊ฑฐ์˜€๋‹ค!

๊ทธ๊ฒƒ๋„ ๋ชจ๋ฅด๊ณ ...ํ•ด์ปค๋žญํฌ ํšŒ์›๊ฐ€์ž… ํ•  ๋ป”.ใ…Žใ…Ž

 

์Šคํƒ€ํŠธ..~

๊ทธ๋ฆฌ๊ณ  ์ƒ๊ฐ๋ณด๋‹ค..์–ด๋ ค์› ๋‹ค

์ด 5๋ฌธ์ œ, ์‘์‹œ ์‹œ๊ฐ„์€ 6์‹œ๊ฐ„์ธ๋ฐ ๋‚œ 3์‹œ๊ฐ„ ์ •๋„๋งŒ ํ–ˆ๋‹ค.

 

์ผ๋‹จ 5๋ฌธ์ œ ๋‹ค ๊ฑด๋“œ๋ ค๋ณด๊ธด ํ–ˆ๋Š”๋ฐ, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์—„์ฒญ ๋งŽ๊ณ  ๋ฐฉ๋Œ€ํ•ด์„œ

๋ชจ๋“  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ๋„ ์žˆ์Œ.

๋ญ ์–ด์จŒ๋“  ์ด ๊ธ€ ๋ณด๋Ÿฌ์˜ค์‹  ๋ถ„๋“ค์€ ๋ฌธ์ œ๊ฐ€ ๊ถ๊ธˆํ•ด์„œ ์˜ค์…จ์„ํ…Œ๋‹ˆ!

๋ช‡๋ฌธ์ œ ๋ณด์—ฌ๋“œ๋ ค์•ผ์ฃ  ๐Ÿ˜Ž

 

์ฐธ๊ณ ๋กœ ๋ฌธ์ œ๊ฐ€ ๋ชจ๋‘ ์˜์–ด๊ณ , ๋ฌธ์ œ ๋ณต์‚ฌ๋ฅผ ๋ชปํ•ด์„œ.. ๋ฒˆ์—ญ๊ธฐ์— ๋„ฃ๊ณ  ๋Œ๋ฆฌ์ง€๋„ ๋ชปํ•œ๋‹ค.

ํฐ์œผ๋กœ ์‚ฌ์ง„์ฐ์–ด์„œ ํŒŒํŒŒ๊ณ  ์ด๋ฏธ์ง€๋ฒˆ์—ญํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ธด ํ•จ

 

๊ทธ๋ฆฌ๊ณ  ๋ฐฑ์ค€์ฒ˜๋Ÿผ ์ž…์ถœ๋ ฅ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ๋ž‘ ๋น„์Šทํ•˜๊ฒŒ ํ•จ์ˆ˜๋งŒ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๊ณ 

์ €๋Š” ํ•ญ์ƒ ๊ทธ๋žฌ๋“ฏ์ด c++ 14 ๋กœ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค~


1๋ฒˆ ๋ฌธ์ œ

anagrams

 

๋ฌธ์ž์—ด, ๋ฒกํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ‘ธ๋Š” ์• ๋‚˜๊ทธ๋žจ ๋ฌธ์ œ์ด๋‹ค.

์ฒ˜์Œ์—๋Š” ์ฃผ์„์ฒ˜๋Ÿผ find๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ๋น„๊ตํ–ˆ๋Š”๋ฐ ๊ณ„์† ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ํ†ต๊ณผ ๋ชปํ•˜๋Š”๊ฒŒ ์žˆ์–ด์„œ ๊ฐˆ์•„์—Ž์–ด์•ผํ•˜๋‚˜ ๊ณ ๋ฏผํ–ˆ๋‹ค

ํ•œ์ฐธ ๋’ค์— ์ •๋ ฌํ•ด์„œ ํ•œ๋ฒˆ์— ๋น„๊ตํ•˜๋ฉด ๋˜๋Š”๊ฑธ ๋– ์˜ฌ๋ ค์„œ.. ํ‘ธ๋Š”๋ฐ์— ์˜ค๋ž˜ ๊ฑธ๋ฆผ ํ‘ํ‘

 

 

๋‚˜์˜ ํ’€์ด

int getGroupedAnagrams(vector<string> words) {
    int size = words.size();
    for(int i=0; i<words.size(); ++i){
        string tmp = words[i];
        for(int j=i+1; j<words.size(); ++j){
            string tmp2 = words[j];
            int cnt = 0;
            if(tmp.length()==tmp2.length()){ // ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ ๋น„๊ต ์‹œ์ž‘
                //cout << i << " "<< j << " ๊ธธ์ด์ผ์น˜\\n";
                sort(tmp.begin(), tmp.end());
                sort(tmp2.begin(), tmp2.end());
                if(tmp == tmp2){
                    size--;
                    words.erase(words.begin()+j);
                    j--;
                }
                // for(int k=0; k<tmp.length(); ++k){
                //     if(tmp2.find(tmp[k]) != string::npos){
                //         cnt++;
                //     }
                //     else break;
                // }
                // if(cnt == tmp.length()) {
                //     size--;
                //     words.erase(words.begin() + j);
                //     j--;
                // }
            }
        }
    }
    return size;
}

 


2๋ฒˆ ๋ฌธ์ œ

matrix

 

์ „ํ˜•์ ์ธ DP ๋ฌธ์ œ์˜€๋‹ค. (Dynamic programming)

์˜ˆ์ „์— ๋‹ค์ด๋‚ด๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์œ ํ˜• ์ตํžŒ๋‹ค๊ณ  ๋ฐฑ์ค€์—์„œ ๊ทธ ์œ ํ˜•๋งŒ ๋ชฐ์•„์„œ ํ‘ผ ์ ์ด ์žˆ๋Š”๋ฐ,

๊ทธ๊ฑฐ ๋•๋ถ„์— ์‰ฝ๊ฒŒ ํ’€์—ˆ๋‹ค!

dp๋Š” ์›๋ž˜ max ๊ตฌํ•˜๋Š”๊ฒŒ ๋งŽ๋˜๋ฐ ์ด ๋ฌธ์ œ๋Š” min์„ ๊ตฌํ•˜๋Š” ์ ์— ์œ ์˜! 

 

 

๋‚˜์˜ ํ’€์ด

int maxEnergy(vector<vector<int>> mat) {
    for(int i=mat.size()-1; i>0; --i){
        for(int j=0; j<mat[0].size(); ++j){
            if(j==0) mat[i-1][j] += min({mat[i][j], mat[i][j + 1]});
            else if(j==mat[0].size()-1) mat[i-1][j] += min({mat[i][j], mat[i][j - 1]});
            else mat[i-1][j] += min({mat[i][j], mat[i][j + 1],mat[i][j - 1]});
        }
    }
    for(int i=0; i<4; ++i){
        for(int j=0; j<4; ++j){
            cout << mat[i][j] << " ";
        }
        cout << "\\n";
    }
    int a = *min_element(mat[0].begin(), mat[0].end());
    return 100-a;
}

 


 

์จŒ๋“  ๋Œ€๋žต ์ด๋Ÿฐ ๋ฌธ์ œ๋“ค์ด ๋‚˜์˜จ๋‹ค๋Š” ๋Š๋‚Œ์œผ๋กœ ๋ด์ฃผ์„ธ์š”

๋ชจ๋“  ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ๋“ค ํ™”์ดํŒ…!

๐Ÿ’ช

728x90