Tags
- LV2
- ๊ทธ๋ํ ํ์
- dfs
- ์ ๋ ฌ
- ๋๋น ์ฐ์ ํ์
- Brute Force Algorithm
- queue
- ์ํ
- DP
- stack
- ๋ฌธ์์ด
- ๊ทธ๋ํ ์ด๋ก
- ๋ฐฑํธ๋ํน
- Python
- ์ ์๋ก
- sort
- ๊ต์ฌ
- SpringBoot
- ๊น์ด ์ฐ์ ํ์
- BFS
- Study
- ์๋ฎฌ๋ ์ด์
- BOJ
- greedy
- PGM
- ๊ตฌํ
- ์๋ฃ๊ตฌ์กฐ
- Dynamic Programming
- Java
- CodingTest
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_2204 : ๋๋น์ ๋๋ ์ฆ ํ ์คํธ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ๋ฌธ์์ด์ ๋๋ฌธ์ ํน์ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด ์ง๋๋ก ํต์ผ์ํค๋ ๋ณํ์ด ํ์ํ๋ค.
- ์ฌ์ ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์์ ๊ฐ์ฅ ์์์ค๋ ๊ฒ์ ๊ณ ๋ฅธ๋ค.
- ์ ๋ ฅ๋ฐ์๋ง์ ์ ๊ฐ๊ณผ ๋น๊ตํด์ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ง๋ง, ์ค๋ฅ๊ฐ ๋ง์ด ๋์ ์ ๋ต ํฌ์คํ ์ ์ฐธ์กฐํ๋ค.
๐ธ ๊ธฐ์กด ์ฝ๋ (์ค๋ต)๐ธ
#include<iostream>
#include<string>
using namespace std;
int main(void) {
int n;
string input, answer, temp;
do {
cin >> n;
answer = "ZZZZZZZZZZZZZZZZZZZZ";
for (int i = 0; i < n; i++) {
cin >> input;
temp = "";
for (int j = 0; j < input.size(); j++) {
if (input[j] > 'Z')
temp += input[j] - ('a' - 'A');
else
temp += input[j];
}
int size = input.size() < answer.size() ? input.size() : answer.size();
bool flag = true;
for (int j = 0; j < size; j++) {
if (temp[j] < answer[j])
break;
else if (temp[j] > answer[j]) {
flag = false;
break;
}
}
if (flag && answer.size() >= input.size()) answer = input;
}
if (n != 0)
cout << answer << endl;
} while (n != 0);
return 0;
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด input์ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด ์ง๋๋ก ๋ณํ ํ temp ์ ์ ์ฅํ๋ค.
- ๋ฌธ์์ด์ ์ต๋๊ธธ์ด๊ฐ 20์ด๋ฏ๋ก ์ฌ์ ์ ๊ฐ์ฅ ๋ค์ ์๋ z*20 ์ answer์ผ ์ด๊ธฐ๊ฐ ๋ฌธ์์ด๋ก ์ง์ ํ๋ค.
- answer์ temp๋ฅผ ๋น๊ตํด ์ฌ์ด์ฆ๊ฐ ์์ ๋ฌธ์์ด์ ํฌ๊ธฐ๋งํผ ํ ๋ฌธ์์ฉ ๋น๊ตํ๋ค.
- ๊ฒฐ๊ณผ : 50%์์ ํ๋ ธ์ต๋๋ค๊ฐ ๋์๋ค.
๐ธ ์ ๋ต ์ฝ๋ ๐ธ
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool check(std::string a, std::string b) {
for (int i = 0; i < a.size(); i++)
if (a[i] >= 'a' && a[i] <= 'z') a[i] -= 32;
for (int i = 0; i < b.size(); i++)
if (b[i] >= 'a' && b[i] <= 'z') b[i] -= 32;
if (a.compare(b) > 0) return false;
return true;
}
int main(void) {
int n;
string input, answer;
cin >> n;
while (n != 0) {
vector<string> strs(n);
for (int i = 0; i < n; i++) {
cin >> input;
strs[i] = input;
}
sort(strs.begin(), strs.end(), check);
if(n != 0)
cout << strs[0] << endl;
cin >> n;
}
return 0;
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ string ๋ฒกํฐ์ ์ ์ฅํ๋ค.
- ์ฌ์ ์ ์ ๋ ฌ ํจ์ check๋ฅผ ๋ง๋ค๊ณ , sort ํจ์์ ๋น๊ต๊ธฐ ํจ์๋ก ํ์ฉํ๋ค.
- checkํจ์์์ ๋ณต์ฌ๋ ๋ฌธ์์ด a์ b๋ฅผ ์๋ฌธ์๋ก ๋ณํํ๊ณ compare ํจ์๋ก ๋น๊ตํ๋ค.
- compare ํจ์๋ ๋ฌธ์์ด์ด ๋น๊ตํ ๋ฌธ์์ด๋ณด๋ค ์ฌ์ ์์ผ๋ก ์์ ์ค๋ฉด -1, ๊ฐ์ผ๋ฉด 0, ์ฌ์ ์ ๋ค์ ์ค๋ฉด 1์ ๋ฐํํ๋ค. ๋ฐ๋ผ์ a, b๊ฐ ๊ฐ๊ฑฐ๋ a๊ฐ ์ฌ์ ์ ์์์ค๋ฉด true๋ฅผ ๋ฐํํ๋ค.
๐ธ end ๐ธ
- ์ฝ๋ฉ ํ ์คํธ ๋ฌธ์ ๋ฅผ ํ๋ ์ฝ๋๊ฐ ๋๋ฌด ๊ธธ์ด์ง๊น๋ด ๋๋๋ก ํจ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ฐ, sort์ ๋น๊ต๊ธฐ ํจ์๋ฅผ ๋ฃ์์ผ๋ก์จ ํธํ๊ฒ ์ ๋ ฌํ ์ ์๋ค๋๊ฑธ ์๊ฒ๋์๋ค. ๋น๊ต๊ธฐ ํจ์๋ฅผ ๋ ์ฐ์ตํด ๋ณผ ์๊ฐ์ด๋ค.
- compare๋ก ํธ๋ฆฌํ๊ฒ ๋ฌธ์์ด์ ์ฌ์ ์ ๋น๊ต๋ฅผ ์ํํ ์ ์๋ค๋๊ฑธ ์๊ฒ๋์๋ค. ๋ฌธ์์ด์ ์ฌ์ ์ ์ ๋ ฌ์ ์์ฃผ ๋์ค๋ ๋ฌธ์ ๊ฐ์๋ฐ ํต์ฌ ํค์๋๋ก ๊ผญ ๊ธฐ์ตํด ๋์์ผ๊ฒ ๋ค.
728x90
'CodingTest > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_2231 : ๋ถํดํฉ (0) | 2022.06.01 |
---|---|
BOJ_10250 : ACM ํธํ (0) | 2022.06.01 |
BOJ_22351 : ์ํ์ ์ฒด์ก๊ณผ๋ชฉ ์ ๋๋ค 3 (0) | 2022.05.12 |
PGM : lv2_์ฌ์ ์ ๋ถ๋ถ๋ฌธ์์ด (0) | 2022.04.02 |
PGM : ๋ ๋งต๊ฒ (0) | 2022.04.02 |