본문 바로가기
개발 기록/java

[Java] 배열을 "이름:점수"형태로 return하기

by jeong11 2023. 12. 4.
반응형
{ answer : 정답 번호 (1~5), score : number }로 이루어진 배열 arr이 정답지로 넘어갈 때,
가장 점수가 높은 수포자의 이름과 점수를 “이름 : 점수” 형태로 리턴해 주세요
시험 응시자는 1번으로 모두 찍은 a, 3번으로 모두 찍은 b, 5번으로 모두 찍은 c가 있습니다.

[입출력 예]
[ { answer : 1, score : 5 }, { answer : 3, score : 3 }, { answer : 2, score : 4 } ] → a : 5
[ { answer : 1, score : 5 }, { answer : 5, score : 5 }, { answer : 2, score : 4 } ] → a : 5, c : 5

*이클립스에서 돌려보며 정답 맞춰본 코드

import java.util.Arrays;

public class main {

	public static void main(String args[]) {
		
		int[] test = new int[]{1,2,4,1,1}; 
		solution3();
	}

	private static void solution3() {
		//int[] answer = new int[]{1,2,4,1,1}; 
		int[] answer = {}; 
		
		int[] a = new int[] {1, 1, 1, 1, 1};
		int[] b = new int[] {3, 3, 3, 3, 3};
		int[] c = new int[] {5, 5, 5, 5, 5};
		
		int[] score = new int[3];
		
		//score[]에 맞힌 문제 채점
		for(int i=0; i<answer.length; i++) {
			if(answer[i] == a[i%answer.length]) {score[0]++;}
			if(answer[i] == b[i%answer.length]) {score[1]++;}
			if(answer[i] == c[i%answer.length]) {score[2]++;}
		}
		
		//높은 점수
		int idx=0;
		int max = score[0];

		for(int i=1; i<score.length; i++)
		{
		if(max < score[i]) {
		    idx = i;
		    max = score[i];
		}
		}

		String str = "A";

		if(idx== 1) str= "B";
		if(idx==2) str = "C";

		System.out.println( str + " : " + max );
		
	}
}

 

반응형

'개발 기록 > java' 카테고리의 다른 글

[Java] 소수의 합  (1) 2023.12.06