코딩 정복 가즈아~
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
블로그 내 검색

코딩 정복 가즈아~

(っ◔◡◔)っ ♥ 2021 취뽀하자!! ♥

  • 알고리즘 풀이/프로그래머스

    [level1] 프로그래머스 - 상호 평가(JAVA)

    2021. 8. 27.

    by. 데롱디롱

    728x90

    - 각 학생 별로 최고점(max), 최저점(min)을 저장한다.

    - 이때, 최고점과 최저점이 2번 나온 경우 빼주지 않아도 되기 때문에, max_same과 min_same에 표시해준다.

    - "최고점이 유일하고 이 점수가 자신이 준 점수일 때" or "최저점이 유일하고 이 점수가 자신이 준 점수일때" 
       이 두 경우 자신의 점수를 빼고 평균을 구한다.

     

     

    class Solution {
    	public String solution(int[][] scores) {
    		StringBuilder sb = new StringBuilder();
    
    		for (int c = 0; c < scores.length; c++) {
    			int max = 0, min = 999999, sum = 0; // 최대값, 최소값, 총합
    			boolean max_same = false, min_same = false; // 같은 숫자 중복 유무
    
    			for (int r = 0; r < scores.length; r++) {
    				sum += scores[r][c];
    
    				if (max == scores[r][c])
    					max_same = true;
    				else if (max < scores[r][c]) {
    					max = scores[r][c];
    					max_same = false;
    				}
    
    				if (min == scores[r][c])
    					min_same = true;
    				else if (min > scores[r][c]) {
    					min = scores[r][c];
    					min_same = false;
    				}
    			}
    
    			double avg = 0.0;
    			if ((scores[c][c] == max && !max_same) || (scores[c][c] == min && !min_same)) {
    				sum -= scores[c][c];
    				avg = (double) sum / (double) (scores.length - 1);
    			} else
    				avg = (double) sum / (double) scores.length;
    
    			sb.append(getScore(avg));
    		}
    
    		return sb.toString();
    	}
    
    	private static char getScore(double avg) {
    		if (avg >= 90)
    			return 'A';
    		else if (avg >= 80)
    			return 'B';
    		else if (avg >= 70)
    			return 'C';
    		else if (avg >= 50)
    			return 'D';
    
    		return 'F';
    	}
    }
    저작자표시 (새창열림)

    '알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

    [level1] 프로그래머스 - 약수의 개수와 덧셈(JAVA)  (0) 2021.08.27
    [level1] 프로그래머스 - 실패율(JAVA)  (0) 2021.08.27
    [level1] 프로그래머스 - 폰켓몬(JAVA)  (0) 2021.08.27
    [level1] 프로그래머스 - 이름이 없는 동물의 아이디(MySQL)  (0) 2021.08.27
    [level1] 프로그래머스 - 최댓값 구하기(MySQL)  (0) 2021.08.27

    댓글

    관련글

    • [level1] 프로그래머스 - 약수의 개수와 덧셈(JAVA) 2021.08.27
    • [level1] 프로그래머스 - 실패율(JAVA) 2021.08.27
    • [level1] 프로그래머스 - 폰켓몬(JAVA) 2021.08.27
    • [level1] 프로그래머스 - 이름이 없는 동물의 아이디(MySQL) 2021.08.27
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

피할 수 없다면, 순간을 즐겨라

Designed by Nana
블로그 이미지
데롱디롱
희희.. (๑′ᴗ‵๑)

티스토리툴바