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 |
Tags
- 관리형 학원
- 성북구 학원
- 백준 10709
- 백준 14246번
- 월곡중학교 학원추천
- c++ split
- DFS
- 백준 9375번 패션왕 신해빈
- 백준 14246번 K보다 큰 구간
- 운영체제
- c++ 조합
- 백준 K보다 큰 구간
- OS
- 백준 1049번
- C# 병합정렬
- 백준 한국이 그리울 땐 서버에 접속하지
- 월곡중 학원
- 서울사대부고 학원
- 고정 소수점
- 월곡동 학원추천
- C++ 문자열
- 백준 2309번 일곱 난쟁이
- 상월곡동 학원
- 백준 1049번 기타줄
- 백준 dfs
- 상월곡역 학원
- 백준 패션왕 신해빈
- 백준 토마토
- C++ 9996
- 월곡역 학원
Archives
- Today
- Total
키베이루's diary
[C++] 백준 2309번 일곱 난쟁이 본문
1) 문제설명
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
2) 아이디어
이전에 설명한 조합과 순열을 사용해서 문제를 해결하였다.
입력된 배열을 오름차순으로 정렬한뒤
순열 :
9명의 난쟁이의 키를 입력받고 이를 순열로 인덱스를 바꾸면서 도는동안 난쟁이들의 키의 합이 100이 될 경우
반복문을 멈추고 그대로 앞에 저장된 배열을 출력하였다.
조합 :
2중 for문을 돌면서 난쟁이의 키의 합에서 가짜 난쟁이 2명을 빼고 그 인덱스를 저장한뒤
다시 for문을 돌면서 저장된 인덱스를 제외하고 출력하였다.
3) 코드
int main() {
int arr[9];
for (int i = 0; i < 9; i++) {
cin >> arr[i];
}
sort(arr, arr + 9); // permutation을 쓰기위한 오름차순
do {
int sum = 0;
for (int i = 0; i < 7; i++) {
sum = sum + arr[i];
}
if (sum == 100) {
break;
}
} while (next_permutation(arr, arr + 9));// 크기만큼 인덱스를 계속 바꾼다
for (int i = 0; i < 7; i++) {
cout << arr[i] << endl;
}
}
int main() {
int arr[9];
for (int i = 0; i < 9; i++) {
cin >> arr[i];
}
sort(arr, arr + 9); // permutation을 쓰기위한 오름차순
int sum = 0;
for (int i = 0; i < 9; i++) {
sum = sum + arr[i];
}
int ch1, ch2;
bool flag = true;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < i; j++) {
if (sum - arr[i] - arr[j] == 100) {
flag = false;
ch1 = i;
ch2 = j;
break;
}
}
if (flag == false) {
break;
}
}
for (int i = 0; i < 9; i++) {
if (i == ch1 || i == ch2) {
continue;
}
else {
cout << arr[i] << endl;
}
}
}
'알고리즘 > 기타' 카테고리의 다른 글
[C++] 백준 10709번 기상캐스터 (0) | 2023.01.17 |
---|---|
[C++] 백준 14246번 K보다 큰 구간 (0) | 2022.12.27 |
[C++] Combination(조합) (0) | 2022.12.26 |
[C#] Merge Sort (1) | 2022.12.23 |
[C++] 백준 3085번 사탕 게임 (0) | 2022.09.30 |
Comments