반응형
#include <stdio.h>
#include <random>
#include <algorithm>
int main(){
int boys[9], sum = 0, temp, x, y;
for(int i = 0; i < 9; i++){
scanf("%d", &boys[i]);
sum += boys[i];
}
temp = sum - 100;
for(int i = 0; i < 9; i++){
for(int j = 0; j < 9; j++){
if(boys[i] + boys[j] == temp && i != j){
x = boys[i];
y = boys[j];
}
}
}
std::sort(boys, boys + 9);
for(int i = 0; i < 9; i++){
if(boys[i] != x && boys[i] != y){
printf("%d\n", boys[i]);
}
}
return 0;
}
100이하의 자연수 9개를 받아, 그 중 합이 100이 되는 7개를 찾아, 오름차순으로 결과를 내는 소스.
오답은 없는것이 조건인 문제.
합이 100이 되는 값을 찾는것을 생각을 반대로 돌렸다.
100을 초과하는 숫자를 계산하여, 반복문을 돌려 두 개의 숫자의 합이 계산된 값과 동일한 2개를 뽑는다.
오름차순으로 정리 후에 반복하여 돌리고, 그 2개의 값과 같지 않은 수만 출력하는 방식을 사용했다.
처음에 오답이 나오길래 왜그런가 했더니, temp값을 뽑아낼때 sum % 100을 하였기에, 스파이 난쟁이 두명의 합이 100이 넘어가 오답이었던 것.
문제출처 : www.acmicpc.net/problem/2309
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 모의고사 문제 (0) | 2021.03.12 |
---|---|
[프로그래머스] 완주하지 못한 선수 문제 (0) | 2021.03.12 |
K번째 수 (0) | 2021.03.07 |
N번째 큰 수 (0) | 2021.03.03 |
소수구하기 (0) | 2021.03.03 |
댓글