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 |
Tags
- 알고리즘
- 구현
- 백준 3190
- BOJ 17142
- 백준 로봇 시뮬레이션
- 로봇 시뮬레이션
- 백준 뱀
- 삼성문제
- C++
- 백준 16234
- BOJ
- boj 15685
- 백준2174
- simulation
- 삼성 문제
- boj 16234
- boj 3190
- Bruteforce
- 헷갈리는 용어
- 연구소3
- C
- 백준 17779
- 완전탐색
- 백준 인구 이동
- dfs
- 브루트포스
- 백준 연구소3
- boj 연구소3
- 시뮬레이션
- 백준 게리맨더링 2
Archives
- Today
- Total
나의 공부장
백준 2309 일곱 난쟁이 [BruteForce] 본문
문제 링크: https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
문제 풀이
9명의 난쟁이 중에서 2명이 공주에게 거짓말하고 있습니다.
2명을 찾는 방법은 9명의 난쟁이들의 키를 모두 더한 값에서 2명씩 빼면서 그 결과가 100이 되는 경우를 찾으면 됩니다.
[9명의 난쟁이들의 키의 합] - [거짓 난쟁이 후보 1] - [거짓 난쟁이 후보 2] = 100
소스 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
//freopen("input.txt", "r", stdin);
vector<int> v(9, 0);
int total = 0;
for (int i = 0; i < 9; i++)
{
cin >> v[i];
total += v[i];
}
bool find = false;
int idx1, idx2;
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
if (i != j)
{
if (total - v[i] - v[j] == 100)
{
find = true;
idx1 = i;
idx2 = j;
break;
}
}
}
if (find) break;
}
vector<int> ans;
for (int i = 0; i < 9; i++)
{
if (v[i] != v[idx1] && v[i] != v[idx2])
ans.push_back(v[i]);
}
sort(ans.begin(), ans.end());
for (int i = 0; i < ans.size(); i++)
cout << ans[i] << '\n';
return 0;
}
'알고리즘 > BOJ' 카테고리의 다른 글
백준 1182 부분 수열의 합 [BruteForce] (0) | 2020.04.26 |
---|---|
백준 1018 체스판 다시 칠하기 [BruteForce] (0) | 2020.04.26 |
백준 10448 유레카 이론 [BruteForce] (0) | 2020.04.24 |
백준 2493 탑 [Stack] (0) | 2020.04.18 |
백준 1743 음식물 피하기 [DFS] (0) | 2020.04.06 |