[210213][백준/BOJ] 2309번 일곱 난쟁이

KeonWoo Kim·2021년 2월 13일
0

알고리즘

목록 보기
10/84

문제

입출력


풀이

9명의 난쟁이중 7명의 난쟁이를 찾는 문제이다.
7명의 난쟁이의 합이 100이므로 9명이 난쟁이의 합을 구한뒤 이중 반복문을 통해 두명의 난쟁이를 빼보면서 100이 맞는 경우를 찾는 완전 탐색으로 해결하면 된다.

이중 for문은 flag 변수를 통해 탈출하였다.

코드

#include <bits/stdc++.h>

int arr[9];

int main()
{
	int flag=0, sum = 0;

	for (int i = 0; i < 9; i++)
	{
		scanf("%d", &arr[i]);
		sum += arr[i];
	}

	std::sort(arr, arr + 9);

	for (int j = 0; j < 8; j++)
	{
		for(int k = j +1 ; k < 9; k++)
		{
			if (sum - arr[j] - arr[k] == 100)
			{
				arr[j] = 0;
				arr[k] = 0;
				flag++; // 이중 반복문을 탈출하기 위한 조건
				break; // 이 조건으로는 안쪽 반복문만 탈출가능
			}
		}
		if (flag)
			break;
	}

	for (int i = 0; i < 9; i++)
		if(arr[i])
			printf("%d\n", arr[i]);
}



profile
안녕하세요

0개의 댓글

관련 채용 정보