05-15 08:39
Recent Posts
Recent Comments
관리 메뉴

miinsun

[Programmers] Java μƒν˜Έ 평가 λ³Έλ¬Έ

Algorithm/Programmers

[Programmers] Java μƒν˜Έ 평가

miinsun 2021. 12. 6. 16:14

 

πŸ’¬ λ¬Έμ œ μ„€λͺ…

λŒ€ν•™ ꡐ수인 당신은, μƒν˜Έν‰κ°€λ₯Ό ν†΅ν•˜μ—¬ 학생듀이 μ œμΆœν•œ κ³Όμ œλ¬Όμ— 학점을 λΆ€μ—¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. μ•„λž˜λŠ” 0λ²ˆλΆ€ν„° 4λ²ˆκΉŒμ§€ λ²ˆν˜Έκ°€ 맀겨진 5λͺ…μ˜ 학생듀이 μžμ‹ κ³Ό λ‹€λ₯Έ ν•™μƒμ˜ 과제λ₯Ό ν‰κ°€ν•œ μ μˆ˜ν‘œμž…λ‹ˆλ‹€.



μœ„μ˜ μ μˆ˜ν‘œμ—μ„œ, iν–‰ jμ—΄μ˜ 값은 i번 학생이 ν‰κ°€ν•œ j번 ν•™μƒμ˜ 과제 μ μˆ˜μž…λ‹ˆλ‹€.
​
0번 학생이 ν‰κ°€ν•œ μ μˆ˜λŠ” 0번 행에담긴 [100, 90, 98, 88, 65]μž…λ‹ˆλ‹€. 0번 학생은 자기 μžμ‹ μ—κ²Œ 100점,
1번 ν•™μƒμ—κ²Œ 90점, 2번 ν•™μƒμ—κ²Œ 98점, 3번 ν•™μƒμ—κ²Œ 88점, 4번 ν•™μƒμ—κ²Œ 65점을 λΆ€μ—¬ν–ˆμŠ΅λ‹ˆλ‹€.
2번 학생이 ν‰κ°€ν•œ μ μˆ˜λŠ” 2번 행에담긴 [47, 88, 95, 80, 67]μž…λ‹ˆλ‹€. 2번 학생은 0번 ν•™μƒμ—κ²Œ 47점, 1번 ν•™μƒμ—κ²Œ 88점, 자기 μžμ‹ μ—κ²Œ 95점, 3번 ν•™μƒμ—κ²Œ 80점, 4번 ν•™μƒμ—κ²Œ 67점을 λΆ€μ—¬ν–ˆμŠ΅λ‹ˆλ‹€.
​
당신은 각 학생듀이 받은 점수의 평균을 κ΅¬ν•˜μ—¬, 기쀀에 따라 학점을 λΆ€μ—¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€.
λ§Œμ•½, 학생듀이 자기 μžμ‹ μ„ ν‰κ°€ν•œ μ μˆ˜κ°€ μœ μΌν•œ 졜고점 λ˜λŠ” μœ μΌν•œ μ΅œμ €μ μ΄λΌλ©΄ κ·Έ μ μˆ˜λŠ” μ œμ™Έν•˜κ³  평균을 κ΅¬ν•©λ‹ˆλ‹€. 0번 학생이 받은 μ μˆ˜λŠ” 0번 열에 λ‹΄κΈ΄ [100, 50, 47, 61, 24]μž…λ‹ˆλ‹€. 자기 μžμ‹ μ„ ν‰κ°€ν•œ 100점은 μžμ‹ μ΄ 받은 점수 μ€‘μ—μ„œ μœ μΌν•œ μ΅œκ³ μ μ΄λ―€λ‘œ, 평균을 ꡬ할 λ•Œ μ œμ™Έν•©λ‹ˆλ‹€.
​
0번 ν•™μƒμ˜ 평균 μ μˆ˜λŠ” (50+47+61+24) / 4 = 45.5μž…λ‹ˆλ‹€.
4번 학생이 받은 μ μˆ˜λŠ” 4번 열에 λ‹΄κΈ΄ [65, 77, 67, 65, 65]μž…λ‹ˆλ‹€.
​
자기 μžμ‹ μ„ ν‰κ°€ν•œ 65점은 μžμ‹ μ΄ 받은 점수 μ€‘μ—μ„œ μ΅œμ €μ μ΄μ§€λ§Œ 같은 μ μˆ˜κ°€ 2개 더 μžˆμœΌλ―€λ‘œ, μœ μΌν•œ μ΅œμ €μ μ΄ μ•„λ‹™λ‹ˆλ‹€. λ”°λΌμ„œ, 평균을 ꡬ할 λ•Œ μ œμ™Έν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 4번 ν•™μƒμ˜ 평균 μ μˆ˜λŠ” (65+77+67+65+65) / 5 = 67.8μž…λ‹ˆλ‹€. μ œμ™Έν•  μ μˆ˜λŠ” μ œμ™Έν•˜κ³  평균을 κ΅¬ν•œ ν›„, μ•„λž˜ 기쀀에 따라 학점을 λΆ€μ—¬ν•©λ‹ˆλ‹€.


ν•™μƒλ“€μ˜ μ μˆ˜κ°€ λ‹΄κΈ΄ μ •μˆ˜ν˜• 2차원 λ°°μ—΄ scoresκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. μ΄λ•Œ, ν•™μƒλ“€μ˜ 학점을 κ΅¬ν•˜μ—¬ ν•˜λ‚˜μ˜ λ¬Έμžμ—΄λ‘œ λ§Œλ“€μ–΄μ„œ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

 

🚫 μ œν•œ 사항

  • 2 ≤ scores의 ν–‰μ˜ 길이(학생 수) ≤ 10
  • scores의 μ—΄μ˜ 길이 = scores의 ν–‰μ˜ 길이
  • 즉, scoresλŠ” ν–‰κ³Ό μ—΄μ˜ 길이가 같은 2차원 λ°°μ—΄μž…λ‹ˆλ‹€.
  • 0 ≤ scores의 μ›μ†Œ ≤ 100
  • 0번 ν•™μƒμ˜ 학점뢀터 μ°¨λ‘€λŒ€λ‘œ 이어 뢙인 ν•˜λ‚˜μ˜ λ¬Έμžμ—΄μ„ return ν•©λ‹ˆλ‹€.

 

 

πŸ”¨ μž…μΆœλ ₯ 예

# 1

No
0 1
0 50
90
1 50
87
평균 50
90
학점 D
A
 
  • 1번 학생이 자기 μžμ‹ μ„ ν‰κ°€ν•œ 87점은 [90, 87]μ—μ„œ μœ μΌν•œ μ΅œμ €μ μ΄λ―€λ‘œ, 평균을 ꡬ할 λ•Œ μ œμ™Έν•©λ‹ˆλ‹€.

​

# 2

No
0 1 2
0 70 49
90
1 68
50
38
2 73 31
100
평균 70.33... 40
64
학점 C F D
  • 1번 학생이 자기 μžμ‹ μ„ ν‰κ°€ν•œ 50점은 [49, 50, 31]μ—μ„œ μœ μΌν•œ μ΅œκ³ μ μ΄λ―€λ‘œ, 평균을 ꡬ할 λ•Œ μ œμ™Έν•©λ‹ˆλ‹€.
  • 2번 학생이 자기 μžμ‹ μ„ ν‰κ°€ν•œ 100점은 [90, 38, 100]μ—μ„œ μœ μΌν•œ μ΅œκ³ μ μ΄λ―€λ‘œ, 평균을 ꡬ할 λ•Œ μ œμ™Έν•©λ‹ˆλ‹€.

 

πŸ’» Solution.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

class Solution {
    public String solution(int[][] scores) {
        String answer = "";
        
        for(int i = 0; i < scores.length; i++){
            ArrayList<Integer> tmp = new ArrayList<>();
            
            for(int j = 0; j < scores.length; j++){
                tmp.add(scores[j][i]);
            }
            
            int max = Collections.max(tmp);
            int min = Collections.min(tmp);
           
            if(tmp.get(i) == min || tmp.get(i) == max){
                if(Collections.frequency(tmp, tmp.get(i)) == 1)
                	tmp.remove(i);
            }

            int avg = 0;
            for(int num : tmp) {
            	avg += num;
            }
            avg /= tmp.size();
            avg /= 10;
            
            switch(avg){
            	case 9:
            		answer += "A";
            		break;
            	case 8:
            		answer += "B";
            		break;
            	case 7:
            		answer += "C";
            		break;
            	case 6:
            		answer += "D";
            		break;
            	case 5:
            		answer += "D";
            		break;	
            		
            	default:
            		answer += "F";
            }
        }
        
        return answer;
    }
}

 

Comments