프로그래머스42889. 실패율 자바

2023. 8. 9. 11:49·문제 풀이/Programmers
728x90
반응형
SMALL

⏬문제와 예시

⏬문제 해결 코드

주석에 문제를 어떻게 풀어야 할지 적어두었습니다.

package step01;

import java.util.*;


public class FailureRate {
public static void main(String[] args) {
	
	int N = 5;
	
	int[] stages= {2, 1, 2, 6, 2, 4, 3, 3};
	
		//스테이지별 실패율을 담을 map생성
	    Map<Integer, Double> map = new HashMap<>();
	    for (int i = 1; i <= N; i++) {
	    	//총 인원
	        double total = 0;
	        //실패인원
	        double fail = 0;
	        for (int j = 0; j < stages.length; j++) {
	        	//해당 스테이지레벨 보다 크거나 같으면 총인원 ++(총인원: 해당 스테이지 유저+ 클리어한 유저)
	            if(i <= stages[j]) total++;
	            //해당 스테이지레벨에 있으면 실패율 ++
	            if(i == stages[j]) fail++;
	        }
	        //만약 해당 스테이지에 유저가 없거나 실패한 사람이 없으면 1로 반환
	        if(total == 0 && fail == 0) total = 1;
	        //각 스테이지벼롤 실패율을 담음
	        map.put(i, fail/total);
	    }
	    
	    //정답을 담을 배열
	    int[] answer = new int[N];
	    
	    for (int i = 0; i < N; i++) {
	    	//순위 지정
	        double max = -1;
	        //해당 스테이지를 담을 키 
	        int rKey = 0;
	        //스테이지별 실패율을 가져와서 가장 큰 수를 담고
	        for (int key : map.keySet()){
	            if(max < map.get(key)){
	                max = map.get(key);
	                rKey = key;
	            }
	        }
	        //정답배열에 복사한 후  
	        answer[i] = rKey;
	        //해당 키는 map에서 삭제(중복으로 확인을 방지하기 위함)
	        map.remove(rKey);
	    }

	
}
}

풀이 방식에는 크게 차이가 있겠지만 map을 이용해 순위를 지정해주는 방식이 중요할 것 같네요

 

728x90
반응형
SMALL

'문제 풀이 > Programmers' 카테고리의 다른 글

[자바]120875. 프로그래머스 평행 코드 첨부  (5) 2023.08.12
[자바]120956 프로그래머스 옹알이 문제 코드 첨부  (1) 2023.08.12
120875. 평행 (자바) 문제에 함정이 있습니다 꼭 읽어보세요!  (0) 2023.08.06
120866. 안전지대 자바  (2) 2023.08.01
181916. 주사위 게임 3 자바  (0) 2023.07.31
'문제 풀이/Programmers' 카테고리의 다른 글
  • [자바]120875. 프로그래머스 평행 코드 첨부
  • [자바]120956 프로그래머스 옹알이 문제 코드 첨부
  • 120875. 평행 (자바) 문제에 함정이 있습니다 꼭 읽어보세요!
  • 120866. 안전지대 자바
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (314) N
      • 면접 준비 (36) N
        • OS (6)
        • Spring Security (0)
        • Java (2) N
        • DB (9)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      자바스크립트
      자바 알고리즘
      자바 반복문
      JavaScript
      redis
      Spring Data Redis
      redis 채팅
      spring redis
      자바 면접
      jsp기초
      Springframework
      springsecurity
      JS
      자바 면접질문
      레디스
      자바기초
      JSP
      Spring
      리눅스마스터2급
      Til
      jsp request
      CSS
      백준
      스프링프레임워크
      리눅스마스터2급정리
      자바
      리눅스
      java
      HTML
      프로그래머스
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    프로그래머스42889. 실패율 자바
    상단으로

    티스토리툴바