본문 바로가기
Problem Solving

[C++] [백준 2953] 나는 요리사다 (pps 4-1)

by tls1107 2021. 7. 17.
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
반응형

댓글