되는대로 살자

[C언어 기출문제&풀이] 두 수(pir) 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 두 수(pir)

malu 2011. 7. 29. 17:46
프로그램 명: pir(special judge)
제한시간: 1 초

20 개의 수가 입력으로 주어진다. 이 수에서 두 수를 뽑은 합의 최대 값을 출력하는 문제이다.

입력

20 개의 수가 입력으로 주어진다. 각 수는 -30 이상 30 이하의 수이다.

출력

  • 첫 줄에는 최대 합을 출력하고
  • 다음 줄에는 두 수를 출력한다. 출력 순서는 관계가 없다.
여러개의 답이 존재하는 경우 만족하는 답 중 하나를 출력한다.

입출력 예

입력

28 -28 27 3 -22 29 2 1 -2 16 -8 5 -7 21 -25 -14 26 -20 15 21

출력

57
29 28

풀이: 이중루프를 돌린다(모두 1~20)
그리고 i+j의 값과 여태까지 나온 값중의 최대값과 비교해서 i+j가 더 크면 저장한다.

루프가 모두 끝나면 여태까지 나온 값 중의 최대값을 출력한다.

소스코드 :
#include <stdio.h> #define MAX_N 20 int main() { int i,j,ar[MAX_N],posi,posj,max=0; for(i=0;i<MAX_N;i++) scanf("%d",&ar[i]); for(i=0;i<MAX_N;i++) for(j=0;j<MAX_N;j++) if(ar[i]+ar[j]>max) { max=ar[i]+ar[j]; posi=ar[i]; posj=ar[j]; } printf("%d\n%d %d",max,posi,posj); }