Problem Solving
[C++] [백준 2953] 나는 요리사다 (pps 4-1)
tls1107
2021. 7. 17. 16:44
728x90
반응형
문제 풀기 전 생각 :
/*
참가자들의 점수는 총 다섯줄에 걸쳐서
다섯번 입력된다.
우리는 가장 높은 점수를 받은 참가자의 번호와 점수의 합을 저장했다 출력하면 된다.
반복문으로 입력을 받을때마다 판별하면 된다.
간단한 문제이다.
*/
#include <iostream>
using namespace std;
int main() {
int n,sum=0,max=0,max_i=0;
for(int i=0 ; i<5 ; i++){
sum = 0;
for(int j=0 ; j<4 ; j++){
cin >> n;
sum += n;
}
if(sum > max) {
max = sum;
max_i = i+1;
}
}
cout << max_i << " " << max;
}
https://www.acmicpc.net/problem/2953
풀 때 어려웠던 점 또는 느낀점 :
어려웠던 점은 없었다.
개선방안을 찾아봐야겠다.
개선방안 :
#include <stdio.h>
int main()
{
int i,a,b,c,d,max=0,x;
for(i=1;i<=5;i++){
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a+b+c+d>max){
max=a+b+c+d;
x=i;
}
}
printf("%d %d",x,max);
return 0;
}
개선방안을 찾아볼때 등수에 드는 코드들은 대부분 c 언어를 활용하는 것 같다.
반복문을 두번 사용하지 않고
한번에 입력받아서 바로 모두 한번에 더하고 조건문으로
판별해 해당한다면 맥스에 저장하는 방식으로 했다.
#include<cstdio>
int n,s,m,k,i,j;
main(){for(;i<5;i++){s=0;
for(j=0;j<4;j++){scanf("%d",&n);s+=n;}
if(m<s){m=s;k=i+1;}}
printf("%d %d",k,m);}
다른 사람의 코드이다.
c로 푼 코드는 메모리를 900kb 정도 사용했고
c++ cstdio 라이브러리를 사용해서 푼 코드는 1100kb정도 사용했다
방법 자체는 내 코드도 같은데 2000kb 정도 사용한 것을 보면
c 가 c++보다 가벼운 듯하다
728x90
반응형