SWEA 1983 조교의 성적 매기기

Jmnote (토론 | 기여)님의 2019년 1월 25일 (금) 19:50 판 (→‎C++)

1 개요

SWEA 1983 조교의 성적 매기기
SW Expert 아카데미
# 문제 풀이

틀:SWEA 난이도 2-1

2 C++

#include <iostream>
#include <cmath>
#include <bits/stdc++.h>
using namespace std;
int main() {
	int T;
	scanf("%d", &T);
	int a[100];
	int N, K;
	int mid, fin, hom;
	for(int tc=1; tc<=T; tc++) {
		char grades[10][3] = {"A+","A0","A-","B+","B0","B-","C+","C0","C-","D0"};
		scanf("%d %d", &N, &K);
		for(int i=0; i<N; i++) {
			scanf("%d %d %d", &mid, &fin, &hom);
			a[i] = mid*35 + fin*45 + hom*20;
		}
		int k_score = a[K-1];
		int k_rank;
		sort(a, a+N);
		for(int i=0; i<N; i++) {
			if(a[i] == k_score) {
				k_rank = N-1-i;
				break;
			}
		}
		printf("#%d %s\n", tc, grades[10*k_rank/N]);
	}
}

3 Java

import java.util.Scanner;
import java.util.Arrays;
import java.util.Collections;
public class Solution {
    public static void main(String args[]) {
        final String grades[] = {"A+","A0","A-","B+","B0","B-","C+","C0","C-","D0"};
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for(int t=1; t<=T; t++) {
            int n = sc.nextInt();
            int k = sc.nextInt()-1;
            Integer a[] = new Integer[n];
            for(int i=0; i<n; i++) {
                int mid = sc.nextInt(); 
                int fin = sc.nextInt();
                int hom = sc.nextInt();
                a[i] = mid*35 + fin*45 + hom*20;
            }
            int k_score = a[k];
            Arrays.sort(a, Collections.reverseOrder());
            int k_rank = Arrays.asList(a).indexOf(k_score);
            System.out.format("#%d %s\n", t, grades[10*k_rank/n]);
        }
    }
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}