본문 바로가기

BAEKJOON/수학

백준 32684번 [장기](C++) -yes6686- 티스토리

728x90
SMALL

 

백준 문제 풀이: 32684 [계란 후라이]


문제 링크: https://www.acmicpc.net/problem/32684

문제 설명:

6가지 재료를 사용하여 만든 요리의 점수를 두 사용자 간에 비교하는 문제입니다. 각 재료마다 고정된 가중치가 있고, 기본 점수에 해당 재료 사용량 × 가중치를 더한 후 총 점수를 비교해 누가 더 나은 요리를 만들었는지 판별합니다.

입력 조건:

  • 총 12개의 정수가 주어집니다.
  • 앞의 6개는 사용자 1의 재료 사용량, 뒤 6개는 사용자 2의 재료 사용량입니다.
  • 각 정수는 0 이상의 값입니다.

출력 조건:

  • 첫 번째 사용자의 점수가 높으면 cocjr0208 출력
  • 두 번째 사용자의 점수가 높으면 ekwoo 출력

문제 해결 코드


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int arr[6] = { 13, 7, 5, 3, 3, 2 }; // 재료별 가중치
    int sum1 = 72;        // 사용자 1의 기본 점수
    double sum2 = 73.5;   // 사용자 2의 기본 점수

    // 사용자 1의 재료 사용량 입력 및 점수 계산
    for (int i = 0; i < 6; i++) {
        int n;
        scanf("%d", &n);
        sum1 += n * arr[i];
    }

    // 사용자 2의 재료 사용량 입력 및 점수 계산
    for (int i = 0; i < 6; i++) {
        int n;
        scanf("%d", &n);
        sum2 += n * arr[i];
    }

    // 점수 비교 후 출력
    if (sum1 > sum2) {
        printf("cocjr0208");
    } else {
        printf("ekwoo");
    }

    return 0;
}
  

코드 설명

  • 재료 가중치: {13, 7, 5, 3, 3, 2}는 각 재료의 점수 기여도를 의미합니다.
  • 기본 점수: 사용자 1은 72점, 사용자 2는 73.5점으로 시작합니다.
  • 입력 처리: 각 사용자에 대해 6개의 재료 사용량을 입력받고, 가중치와 곱하여 누적 점수에 더합니다.
  • 결과 비교: 최종 점수를 비교하여 더 높은 점수를 가진 사람의 닉네임을 출력합니다.

시간 복잡도 분석:

  • 입력은 고정 길이이므로 O(1).
  • 계산 및 비교도 O(1).
  • 즉, 전체 시간 복잡도는 O(1)입니다.

결과

다음은 입력 예시와 출력 결과입니다:

입력:
1 1 1 1 1 1
0 1 1 1 1 1

출력:
cocjr0208
  

첫 번째 사용자의 점수가 더 높으므로 cocjr0208을 출력합니다.

다른 의견이나 개선 아이디어가 있다면 댓글로 공유해주세요!

728x90
LIST