https://www.acmicpc.net/problem/2309
내가 푼 해결법의 로직은
우선 입력값을 배열로 받고
선택정렬로 오름차순으로 정렬한 후
9명의 난쟁이들의 입력된 키 값 -100 을 통해
가짜 난쟁이들 두명의 키 값의 합을 구하고
이 합에 해당되는 가짜 난쟁이들의 idx를 알아내서
그 idx를 제외한 배열의 element들을 출력하는 것이다.
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
40
41
42
43
44
45
46
47
48
|
#include <iostream>
using namespace std;
int main() {
int i, a[9], n, idx, j, tmp, sum, fake1, fake2;
n = 9;
fake1 = 9;
fake2 = 9;
sum = 0; //아홉난쟁이의 키의 합
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
sum += a[i];
}
sum -= 100; //난쟁이를 골라내기 위한.. 변수
//선택정렬
for (i = 0; i < n-1; i++) {
idx = i;
for (j = i + 1; j < n; j++) {
if (a[j] < a[idx]) {
idx = j;
}
}
tmp = a[i];
a[i] = a[idx];
a[idx] = tmp;
}
for (i = 0; i < n-1; i++) {
for (j = i + 1; j < n; j++) {
if ((a[i] + a[j]) == sum) {
fake1 = i;
fake2 = j;
break;
}
}
if (fake1 != 9) break; //가짜 난쟁이를 찾으면
}
for (i = 0; i < n; i++) {
if (fake1 == i || fake2 == i) continue;
printf("%d \n", a[i]);
}
}
|
cs |
뭔가 씨쁠쁠이라 넘어갔지 파이썬으로 풀었음 시간초과났을 것 같은
풀이였다.
'Baekjoon Online Judge' 카테고리의 다른 글
[python]13706. 제곱근 (0) | 2021.09.28 |
---|---|
[python]1182. 부분수열의 합 (0) | 2021.04.29 |
[python]7568. 덩치 (2) | 2021.04.29 |
[python]1914.하노이 탑 (0) | 2021.02.11 |
[python]10814.나이순 정렬 (4) | 2021.02.03 |