USACO/Bronze
백준 14468 소가 길을 건너간 이유 2 (USACO February 2017 Bronze 2번)
ssam..
2020. 2. 29. 22:20
문제 링크: https://www.acmicpc.net/problem/14468
14468번: 소가 길을 건너간 이유 2
문제 존의 농장에는 원형 목초지가 있고, 그 둘레에 길이 둘러져 있다. 존의 소는 매일 아침 이 길을 건너가 풀을 먹고 저녁에 다시 길을 건너가 헛간으로 돌아간다. 이 소들은 자신의 습관대로 매일 똑같은 방법으로 길을 건넌다. 각각의 소는 원형 길의 정해진 한 점을 지나 들어오고, 다른 점을 지나 나간다. 어떤 두 소도 길 위의 같은 점을 지나가지 않는다. 이걸 지켜본 존은 이 점들을 분석해 보기로 했다. 소는 총 26마리고, A, B, ... Z라는 이
www.acmicpc.net
A부터 Z까지 각소마다 나타난 두곳의 위치를 pos 배열에 입력받음.
각각의 pair마다 소의 위치가 서로 엉켜있는지 확인될때마다 답을 1을 더하면 됨.
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
|
#include <bits/stdc++.h>
using namespace std;
int pos[200][2];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
for(int i = 0; i < s.size(); i++) {
if(pos[s[i]][0] == 0) pos[s[i]][0] = i + 1;
else pos[s[i]][1] = i + 1;
}
int ans = 0;
for(int i = 'A'; i <= 'Y'; i++) {
for(int j = i + 1; j <= 'Z'; j++) {
int a1 = pos[i][0], a2 = pos[i][1];
int b1 = pos[j][0], b2 = pos[j][1];
if(a1 < b1 && b1 < a2 && a2 < b2) ans++;
else if(b1 < a1 && a1 < b2 && b2 < a2) ans++;
}
}
cout << ans << '\n';
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
두번째 코드의 logic은 첫번째 코드와 완전히 같지만, 첫번째 코드에서 if문을 두번 사용한것을 두번째 코드에서는 한번만 사용해서 풀이함. 대신 첫번째 코드에서는 n(n-1)/2 개의 pair에 대해서 loop을 돌았는데, 두번째 코드에서는 n^2 개의 pair에 대해서 loop을 돌아야 함.
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
|
#include <bits/stdc++.h>
using namespace std;
int pos[200][2];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
for(int i = 0; i < s.size(); i++) {
if(pos[s[i]][0] == 0) pos[s[i]][0] = i + 1;
else pos[s[i]][1] = i + 1;
}
int ans = 0;
for(int i = 'A'; i <= 'Z'; i++) {
for(int j = 'A'; j <= 'Z'; j++) {
if(pos[i][0] < pos[j][0] && pos[j][0] < pos[i][1] && pos[i][1] < pos[j][1])
ans++;
}
}
cout << ans << '\n';
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|