https://www.acmicpc.net/problem/17266
풀이: 가로등들의 사이 길이 / 2 가 가장 긴 것을 찾는다.
단, 첫 가로등과 마지막 가로등은 왼쪽 끝과 오른쪽 끝에 가로등이 없기 때문에 /2를 하지않는다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include <iostream>using namespace std; int main() { int n, m, i, x, v[100001], c = 0, d = 0, s, f = 1; cin >> n >> m; fill(v, v + n + 1, 0); for (i = 0; i < m; i++) { cin >> x; v[x] = 1; } for (i = 0; i <= n; i++) { if (v[i]) { if (f) s = i, f = 0; else s = s > (i - d + 1) / 2 ?
https://www.acmicpc.net/problem/17264
풀이: 이길 수 있는 사람을 set에 모아놓는다.
만약 만난 사람이 set에 존재한다면, score에 획득 점수를 더해준다.
만약 만난 사람이 set에 존재하지 않는다면, score에 떨어지는 점수를 빼준다.
만약 score가 IRON 티어에서 벗어나기 위한 점수보다 높아진다면,
“I AM NOT IRONMAN!!” 을 출력한다.
모든 플레이어를 만났음에도 IRON 티어에서 벗어나기 위한 점수보다 낮다면,
“I AM IRONMAN!!“을 출력한다.
score값은 음수가 될 수 없으므로 주의하자!!!
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include <iostream>#include <set>using namespace std; int main() { int n, p, w, l, g, c = 0; set<string> s; string t, h; for (cin >> n >> p >> w >> l >> g; p--;s.
https://www.acmicpc.net/problem/17263
풀이: 받아온 수 중 가장 큰 수를 출력한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 #include <iostream>using namespace std; int main() { int n, a, c = 0; cin >> n; while (n--) { cin >> a; if (c < a) c = a; } cout << c << endl; }
https://www.acmicpc.net/problem/14612
풀이: order를 <주문시간, 테이블번호> 를 변수로 하는 vector에 차곡차곡 쌓는다.
각 주문이 끝난 후 vector의 들어있는 테이블 번호를 순서대로 출력한다.
만약 sort가 들어왔다면, 주문시간을 기준으로 vector를 정렬한다
만약 complete가 들어왔다면, 완성된 테이블 번호를 vector에서 제거한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include <iostream>#include <vector>#include <algorithm>using namespace std; int main() { int n, m, a, b, i; vector<pair<int, int>> v; cin >> n >> m; while (n--) { string s; cin >> s; if (s == "order") { cin >> a >> b; v.