๐ซ ๋ฐฑ์ค 1152(https://www.acmicpc.net/problem/1152)
๐ง Algorithm _ ๋จ์ด์ ๊ฐ์ ์ธ๋ ๋ฒ
1. ๋จ์ด์ ๊ฐ์๋ฅผ ์ธ๋ ๋์ ๋์ด์ฐ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ ๊ณต๋ฐฑ์ ๊ฐ์๋ฅผ ์ธ์๋ค.
(โต ๋จ์ด๋ฅผ ๊ตฌ๋ถ์ง๋ ๊ธฐ์ค์ด ๋์ด์ฐ๊ธฐ์ด๊ธฐ ๋๋ฌธ)
2. getline ํจ์๋ฅผ ์ด์ฉํด cin์ผ๋ก ๋ฐ์ ์ ๋ ฅ๊ฐ์ str์ด๋ผ๋ ๋ณ์์ ์ ์ฅํด ์ฃผ์๋ค.
์ด๋, ์ ์ฅ๋๋ ๊ฐ๋ค์ ๋ชจ๋ char ํ์ด๋ค.
์๋ฅผ ๋ค์ด hello๋ผ๋ ๋ณ์๋ฅผ ์ ๋ ฅํ๋ฉด, str[1] = 'e'๊ฐ ๋๋ ๊ฒ์ด๋ค.
3. ๊ทธ ํ ๊ณต๋ฐฑ์ ํด๋นํ๋ ๋ฌธ์ ' ' ์ ๊ฐ์๋ฅผ ์ธ์์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
4. ๋ค๋ง, ์ฃผ์ํ ์ ์ ๊ฐ์ฅ ์์ ๊ณต๋ฐฑ์ด ๋์ค๋ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ๋ค์ ๊ณต๋ฐฑ์ด ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ์ด๋ค.
์ด์ ๊ด๋ จํ์ฌ ๊ฐ์ฅ ์์ ๊ณต๋ฐฑ์ด ๋์ค๋ ๊ฒฝ์ฐ๋ฅผ ์ผํญ์ฐ์ฐ์๋ก ์ฒ๋ฆฌํด ์ฃผ์๊ณ
๊ฐ์ฅ ๋ค์ ๊ณต๋ฐฑ์ด ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ๋ for๋ฌธ์์ str.size()-1 ์ ํด์ค์ผ๋ก ์ฒ๋ฆฌํด ์ฃผ์๋ค.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string str;
getline(cin, str); // getline(cin, str, '\n');
// cin.getline(char str, streamsize n, char dlim); delim์ ๋ง๋๊ธฐ ์ ๊น์ง์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฝ์ด str๋ฐฐ์ด์ ์ ์ฅ.
int cnt_space = 0;
for (int i = 0; i < str.size() - 1; i++) {
if (str[i] ==' ')
cnt_space++;
}
int cnt = (str[0] == ' ') ? cnt_space : cnt_space + 1;
cout << cnt;
}
๐ซ ๋ฐฑ์ค 1157(https://www.acmicpc.net/problem/1157)
๐ง Algorithm _ ์ ํ๋ฆฌ๋๊ฑฐ์ง...
1. ์๋ฌธ์์ ๋๋ฌธ์์ ๊ตฌ๋ณ์ ์์ ๊ธฐ ์ํด ์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ๋ฐ๊ฟ์ค๋ค.
2. ์ํ๋ฒณ์ ์ด 25๊ฐ์ด๋ฏ๋ก ๊ฐ๊ฐ์ ์ํ๋ฒณ์ ๊ฐ์๋ฅผ ์ธ์ฃผ๊ธฐ ์ํ count๋ฐฐ์ด ์์ฑ
3. countํ ๊ฐ์ด 2๊ฐ ์ด์์ด๋ผ๋ฉด(max์ ๋์ผํ count๊ฐ์ด ์๋ค๋ฉด) ? ์ถ๋ ฅ
4. ๊ทธ๊ฒ ์๋๋ผ๋ฉด max๊ฐ์ ํด๋นํ๋ index์ ํด๋นํ๋ ์ํ๋ฒณ ์ถ๋ ฅ
1๋ฒ.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string str;
getline(cin, str);
// 1. ์๋ฌธ์์ ๋๋ฌธ์์ ๊ตฌ๋ณ์ ์์ ์ผ ํจ
for (int i = 0; i < str.length(); i++){
if (str[i] >= 'a' && str[i] <= 'z')
str[i] = str[i] - 'a' + 'A';
}
// 2. ์ํ๋ฒณ์ ์ด 25๊ฐ(Z-A = 25)์ด๋ฏ๋ก count๋ฅผ ์ํ ๋ฐฐ์ด์ ์์ฑ ๋ฐ ์ด๊ธฐํํด์ค์ผํจ
int count[26]; for (int i = 0; i < 26; i++) count[i] = 0;
for (int i = 0; i < str.length(); i++){
int idx_number = str[i] - 65;
count[idx_number]++;
}
char c;
int max = -1;
for (int i = 0; i < 26; i++){
if (count[i] == 0)
continue;
else if (count[i] > max){
max = count[i];
c = (char)(i + 65);
}
else if (count[i] == max){
c = '?';
}
}
cout << c;
}
2๋ฒ.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string str;
getline(cin, str);
// 1. ์๋ฌธ์์ ๋๋ฌธ์์ ๊ตฌ๋ณ์ ์์ ์ผ ํจ
for (int i = 0; i < str.length(); i++){
if (str[i] >= 'a' && str[i] <= 'z')
str[i] = str[i] - 'a' + 'A';
}
// 2. ์ํ๋ฒณ์ ์ด 25๊ฐ(Z-A = 25)์ด๋ฏ๋ก count๋ฅผ ์ํ ๋ฐฐ์ด์ ์์ฑ ๋ฐ ์ด๊ธฐํํด์ค์ผํจ
vector<int> alpha_count(26); for (int i = 0; i < 26; i++) alpha_count[i] = 0;
for (int i = 0; i < 26; i++){
int idx_number = str[i] - 65;
alpha_count[idx_number]++;
}
int max = *max_element(alpha_count.begin(), alpha_count.end());
int cnt = count(alpha_count.begin(), alpha_count.end(), max);
int index = max_element(alpha_count.begin(), alpha_count.end()) - alpha_count.begin();
if (cnt >= 2)
cout << "?";
else if (cnt < 2)
cout << (char)(index + 65);
}
๐ซ ๋ฐฑ์ค 11720(https://www.acmicpc.net/problem/11720)
๐ง Algorithm _ ํ์ค์ ์ ๋ ฅ์ ๋ชจ๋ ๊ณต๋ฐฑ์์ด ๋ฐ๊ธฐ
1. ๋จผ์ ๊ณต๋ฐฑ์์ด ์ ๋ ฅ์ ๋ฐ์ ์ ์ฅํ๋ string ๋ณ์ str๊ณผ
2. string์ char๋ฐฐ์ด์ ๋ฃ๊ธฐ ์ํ ์์ ์ ์งํํ๋ค.
char c[str.length()+1] ์ด๋ผ๋ ๋ฐฐ์ด์ ์์ฑํด์ฃผ๊ณ
์ด ๋ฐฐ์ด์ str์ ์ ์ฅ๋ ๋ฌธ์์ด์ ์ง์ด๋ฃ์ด ์ฃผ๊ธฐ ์ํด copyํจ์๋ฅผ ์ฌ์ฉํด์ค๋ค.
3. ๊ทธ ํ char ํ์ 5๋ฅผ int ํ์ 5๋ก ๋ฐ๊ฟ์ค์ผ ํ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ด์ฉํด ์ค๋ค.
9 = '9'-'0' (= 57 - 48)
์์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ด์ฉํ๋ฉด c[i] - '0'์ ํด๋น ์ซ์์ ๋์ผํ ๊ฐ์ ๊ฐ๊ฒ ๋๋ค.
4. ์ดํ ์ต์ข ์ ์ผ๋ก sum์ด๋ผ๋ ๋ณ์์ ์ต์ข ์ ์ธ ๊ฐ๋ค์ ํฉ์ ์ ์ฅํด์ฃผ๋ฉด ๋๋ค.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int num; cin >> num;
string str; cin >> str;
int sum = 0;
char c[str.length() + 1];
str.copy(c, str.length() + 1);
int arr[str.length() + 1];
for (int i = 0; i < str.length(); i++) {
arr[i] = c[i] - '0';
}
for (int i = 0; i < str.length(); i++) {
sum += arr[i];
}
cout << sum;
}