Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 2309
- tftp 서버
- AWS
- 인접행렬
- 라즈베리파이3
- DFS
- stack
- tftp
- deque
- 최단경로
- uboot
- 디바이스드라이버
- 라즈베리파이3 ftfp
- putty
- 한수
- STL deque
- 모듈
- tftp-hpa
- gui
- dfs recursive
- .config
- u-boot
- 라즈비안
- 백준
- 일곱 난쟁이
- Module.symvers
- 디바이스 드라이버
- 라즈베리파이3 라즈비안
- 라즈베리파이 uboot
- GPIO
Archives
- Today
- Total
달공이와 임베디드
[백준][2309] 일곱 난쟁이 본문
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
브루트포스로 분류된 문제이다.
O(n^2) 문제인데, n의 수가 10으로 정해져 있다.
출력시 정렬을 위해, deque를 사용하였다.
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int height[9];
int ans_height[7];
int main()
{
int height_sum = 0;
for (int i=0; i<9; i++)
{
cin >> height[i];
height_sum += height[i];
}
int target_height = height_sum - 100;
int fraud_man1;
int fraud_man2;
for(int i=0; i<9-1; i++)
{
for(int j=i+1; j<9; j++)
{
if (target_height == (height[i] + height[j]))
{
fraud_man1 = height[i];
fraud_man2 = height[j];
goto out;
}
}
}
out:
deque<int> list;
for (int i=0; i<9; i++)
{
if (height[i] != fraud_man1 && height[i] != fraud_man2)
{
list.push_back(height[i]);
}
}
sort(list.begin(), list.end());
for (auto el : list)
{
cout << el << endl;
}
}
Comments