728x90
*ํด๊ฒฐ๋ฒ
์ฒ์์ ๋จ์ด ๊ธธ์ด๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋๋ ๊ฒ์ ๋ชป๋ณด๊ณ ๊ทธ๋ฅ sort ํ๋ค๊ฐ ํ๋ ธ๋ค.
๋ฌธ์ ์์ ์๊ตฌํ๋ ๊ฒ์ ๋จ์ด์ ๊ธธ์ด๊ฐ ๊ฐ์ ๋ ์ํ๋ฒณ ์์๋ก ์ ๋ ฌํ๊ณ ๋จ์ด์ ๊ธธ์ด๊ฐ ๋ค๋ฅผ ๋ ๋จ์ด์ ๊ธธ์ด๋ณ๋ก ์ ๋ ฌํด์ผ ํ๋ฏ๋ก Custom Sort ํจ์๊ฐ ํ์ํ๋ค.
*์์๋๊ฒ
1) Custom Sort ํจ์ ํ์ฉ๋ฒ
bool sortWord(string word1, string word2){
//์ฌ์ด์ฆ๊ฐ ๋ค๋ฅด๋ฉด ๊ธด๊ฒ ๋ค๋ก
if(word1.size() != word2.size()){
return word1.size() < word2.size();
}
//์ฌ์ด์ฆ๊ฐ ๊ฐ์ผ๋ฉด ํฐ ๊ฐ์ด ๋ค๋ก
return word1 < word2;
}
sort(words.begin(), words.end(), sortWord);
์ฐธ๊ฐ์ธ๊ฒ ๋ค๋ก ๊ฐ๋ฏ๋ก return bool ์ ์์ ๊ฐ์ด ์ ์ด์ฃผ์ด์ผ ํ๋ค.
2) string ๊ธธ์ด๊ตฌํ๋ ๋ฒ
str.size();
3) string ํฌ๊ธฐ?๊ฐ ๋น๊ต
str1 < str2
*์ฝ๋
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
bool sortWord(string word1, string word2){
//์ฌ์ด์ฆ๊ฐ ๋ค๋ฅด๋ฉด ๊ธด๊ฒ ๋ค๋ก
if(word1.size() != word2.size()){
return word1.size() < word2.size();
}
//์ฌ์ด์ฆ๊ฐ ๊ฐ์ผ๋ฉด ํฐ ๊ฐ์ด ๋ค๋ก
return word1 < word2;
}
int main() {
int wordNum = 0, wordIndex = 0;
vector<string> words(wordNum);
string word;
cin >> wordNum >> wordIndex;
for(int i = 0; i<wordNum; i++){
cin >> word;
words.push_back(word);
}
sort(words.begin(), words.end(), sortWord);
cout << words[wordIndex-1] << endl;
return 0;
}
* vector pair์ second ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ธฐ ์ํ custom sort ๋ ์๋ ๊ฒ์๊ธ ์ฐธ๊ณ
728x90
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Baekjoon][๋ฌธ์์ด] 10808๋ฒ ์ํ๋ฒณ ๊ฐ์ (1) | 2024.02.03 |
---|---|
[C++][Goorm][ํ์] ์นด๋ ๊ตํํ๊ธฐ (0) | 2023.06.11 |
[C++][Programmers][BFS/DFS] ์์ดํ ์ค๊ธฐ (0) | 2023.06.06 |
[C++][Programmers][์คํ/ํ] ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (0) | 2023.06.04 |
[C++][Programmers][์คํ/ํ] ์ฃผ์๊ฐ๊ฒฉ (0) | 2023.06.04 |