728x90
▶문제 : 일곱 난쟁이 (codeup.kr)
▶코드 작성
#include <stdio.h>
int main()
{
int arr[9], sum = 0;
for (int i = 0; i < 9; i++) {
scanf("%d", &arr[i]);
sum += arr[i];//모든 값의 합 구하기
}
for (int i = 0; i < 8; i++)
{
for (int j = i + 1; j < 9; j++)
{
if (sum - arr[i] - arr[j] == 100)//배열 자리 i, j의 값을 빼서 100이 되면
{
arr[i] = arr[j] = 0;//그 자리의 값을 0대입
break;
}
}
if (arr[i] == 0) break;//0이 되었을 때 종료
}
for (int i = 0; i < 8; i++)//선택 정렬
{
int min = i;
for (int j = i + 1; j < 9; j++)
{
if (arr[min] > arr[j]) min = j;
}
if (i != min)
{
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
for (int i = 2; i < 9; i++) {//0을 제외한 값 출력
printf("%d\n", arr[i]);
}
return 0;
}
▶해석
값을 입력받을 때 sum변수로 모든 값의 합을 구한다. 이중 for문으로 모든 구역에서 2개의 값을 골라 sum에서 빼보아 100이 나오는지 확인하였다. 100이 나오면 그 뺐던 값을 0으로 해주어 종료하였다.
마지막으로 선택 정렬을 하고 작은 수 중 0이 두 번 있으니 i=2부터 출력해주었다.
728x90
'코드업(codeup) > C' 카테고리의 다른 글
코드업(codeup) 4861 : 방 배정 C언어 (0) | 2022.02.22 |
---|---|
코드업(codeup) 4816 : 전자레인지 C언어 (0) | 2022.02.22 |
코드업(codeup) 3709 : 블럭 채우기 1 C언어 (0) | 2022.01.29 |
코드업(codeup) 2655 : 1차 함수의 x절편 구하기 C언어 (0) | 2022.01.29 |
코드업(codeup) 4040 : 펜션 C언어 (0) | 2022.01.21 |
댓글