๐ซ ๋ฐฑ์ค 1065 (https://www.acmicpc.net/problem/1065)
๐ง Algorithm
1. ๋จผ์ ๋ฑ์ฐจ์์ด์ด์ด์ผ ํ๋ฏ๋ก ์๋ฆฌ์๊ฐ์ ๊ณต์ฐจ๊ฐ ๊ฐ์์ผ ํ๊ธฐ์ a-b์ b-c์ ๊ฐ์ด ๋์ผํด์ผํจ.
2. ์ด๋ฅผ ์ํด ํจ์ hansu๋ฅผ ๋ง๋ค์๊ณ ์ด๋ฅผ 100์์๋ฆฌ์์์ ์ฌ์ฉ.
3. 100~999๊น์ง ๊ธฐ์ค์ผ ๋ ๋ฑ์ฐจ์์ด์กฐ๊ฑด์ ๋ง์กฑ์์ผ์ผ ํ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
#include <iostream>
#include <algorithm>
using namespace std;
bool hansu (int num){
int a = num / 100;
int b = (num - a*100) / 10;
int c = num % 10;
return a-b == b-c;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int cnt = 0;
int num; cin >> num;
if (num <= 99){
cout << num;
}
else if (num >= 100 && num <= 999) {
for (int i = 100; i <= num; i++) {
cnt += hansu(i);
}
cout << cnt + 99;
}
else
cout << 144;
}
๐ซ ๋ฐฑ์ค 1978(https://www.acmicpc.net/problem/1978)
๐ง Algorithm _ ์์๋ฅผ ์ฐพ๋ ๋ฒ
1. a % b == 2๋ผ๋ ์์ ์ฝ์๋ฅผ ๊ตฌํ๋ ์์ด๋ฉฐ
2. ์ด ์ฝ์์ ๊ฐ์๋ฅผ ์ธ๋ cnt๋ผ๋ ๋ณ์๋ฅผ ์ด์ฉํด x์ ์ฝ์๊ฐ์๋ฅผ ๊ตฌํ๊ณ
3. ์์์ ํน์ง (์ฝ์์ ๊ฐ์๊ฐ 1๊ณผ ์๊ธฐ์์ )์ ์ด์ฉํด ์ฝ์ ๊ฐ์๊ฐ 2์ธ ์์ฐ์ ๊ฐ๋ค์ ์ธ์ค๋ค.
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
int num; cin >> num;
int count = 0;
for (int i = 0; i < num; i++) {
int cnt = 0;
int x; cin >> x;
for (int j = 1; j <= x; j++)
if (x % j == 0)
cnt++;
if (cnt == 2)
count++;
}
cout << count << endl;
return 0;
}
๐ซ ๋ฐฑ์ค 2581(https://www.acmicpc.net/problem/2581)
๐ง Algorithm _ ์์๋ฅผ ์ฐพ๋ ๋ฒ
1. a % b == 2๋ผ๋ ์์ ์ฝ์๋ฅผ ๊ตฌํ๋ ์์ด๋ฉฐ
2. ์ด ์ฝ์์ ๊ฐ์๋ฅผ ์ธ๋ cnt๋ผ๋ ๋ณ์๋ฅผ ์ด์ฉํด x์ ์ฝ์๊ฐ์๋ฅผ ๊ตฌํ๊ณ
3. ์์์ ํน์ง (์ฝ์์ ๊ฐ์๊ฐ 1๊ณผ ์๊ธฐ์์ )์ ์ด์ฉํด ์ฝ์ ๊ฐ์๊ฐ 2์ธ ์์ฐ์ ๊ฐ๋ค์ ์ธ์ค๋ค.
์ด๋ฅผ ์ด์ฉํด ๊ฐ๋ค์ ์ ์ฒด ํฉ์ ๊ตฌํด์ฃผ๊ณ ๊ฐ์ฅ ์ต์๊ฐ์ ์์ ์์๋๋ก vector์ ๋ฃ์ด์คฌ์ผ๋ฏ๋ก
๋น์ฐํ vector์ ์ฒซ๋ฒ์งธ ์์์ ๋ค์ด์๋ ๊ฐ์ด ์ต์๊ฐ์ด ๋๋ค.
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
int M, N; cin >> M >> N;
int sum = 0;
vector<int> v;
for (int i = M; i <= N; i++) {
int cnt = 0;
for (int j = 1; j <= i; j++)
if (i % j == 0)
cnt++;
if (cnt == 2){
v.push_back(i);
sum += i;
}
}
if (v.size() == 0)
cout << -1 << endl;
else {
cout << sum << endl;
cout << v[0] << endl;
}
}
๐ซ ๋ฐฑ์ค 10814(https://www.acmicpc.net/problem/10814)
๐ง Algorithm
STL ์ค ํ๋์ธ pair๋ฅผ ์ฌ์ฉํ๋ค.
(map์ ๊ฒฝ์ฐ, ๊ฐ์ด ๊ฒน์น๋ฉด ์ ์ฅ์ด ๋์ง ์๊ธฐ์ pair๋ฅผ ์ฌ์ฉํด ์ฃผ์๋ค.)
๋ํ stable_sort๋ผ๋ ํจ์๋ฅผ ์ฌ์ฉํด ์ฃผ์๋ค.
๊ทธ๋ฅ sort๋ฅผ ์งํํด์ฃผ๋ฉด ์ด๋ quick sort๋ฐฉ์์ ๋ถ์์ ํ ์ ๋ ฌ๋ฐฉ์์ด๋ค. (unstable sort ๋ฐฉ์)
์ฆ, ์์๊ฐ ๊ฐ๋ค๋ฉด ๋ฐ๋ ์ ์๋ ์ ๋ ฌ ๋ฐฉ์์ด๋ค.
๋ฐ๋ผ์ stable_sort๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ merge sort๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋ด์ฅํจ์์ด๊ธฐ์ ์ฌ์ฉํ๊ฒ ๋์๋ค.
๋ค๋ง, stableํ ์ ๋ ฌ๋ฐฉ์์ด unstableํ ์ ๋ ฌ ๋ฐฉ์๋ณด๋ค cost๊ฐ ๋๊ธฐ์ ํน๋ณํ stable ์ ๋ ฌ์ ๋ฐ๋์ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์๋ sort()๊ฐ ์๋, stable_sort()๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค.
๋จ, ์ด ๋ฌธ์ ์ ํต์ฌ์ endl์ ์ฌ์ฉํ๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๊ฑธ๋ฆด ๊ฐ๋ฅ์ฑ์ด ๋์ "\n"์ ์ฌ์ฉํด์ผ ํ๋ค.
#include <iostream>
#include <algorithm>
using namespace std;
pair<int, string> p[100000];
bool compare (pair<int, string> p1, pair<int, string> p2) {
return p1.first < p2.first;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int num;
cin >> num;
for (int i = 0; i < num; i++) {
int num; string str; cin >> num >> str;
p[i] = { num, str };
}
stable_sort(p, p+num, compare);
for (int i=0; i<num; i++) {
cout << p[i].first << " " << p[i].second << "\n";
}
}