Algorithm Study

[프로그래머스] 실패율/ java, 내림차순, Map, keySet

hyun-1200 2022. 5. 17. 19:21

https://programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

 

* 실패율 = ( 스테이지 도착했으나 아직 클리어 하지 못한 플레이어의 수 ) / 스테이지에 도달한 플레이어의 수

* stages[i] = stages 배열 중 i 인 값의 갯수 / stage 배열 중 i와 같거나 큰 값의 갯수   

* 다만 여기서, 주의해야할 점은 도달한 유저가 없을때 실패율이 0 이라는 점!!! 

  • 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0 으로 정의한다.
  • 따라서, 해당 경우는 따로 예외처리 해줘야 한다. 

실패율 구하는 것 까지는 금방 구했는데,

그 후에 내림차순 하는법에서 한참을 헤맸다.. 

1) Collections.sort(list) -> Collections.reserve(list) 사용하는 경우 list로 사용 가능하기때문에, 

map에서 list로 변환한 후, 그 키값을 다시 저장해서.. answer 로 다시 받아야 하는데 🤯🤯🤯🤯🤯

 

2) map.keySet 을 통해서 list로 받은 후에, 하나씩 max값과 index를 찾아서 answer에 저장하는법.

 

어쨌든, map에서 Set으로 바꿔줘야했기 때문에 map.keySet() 은 필수였다! 

map 어렵네. 이 문제는 꼭 다시 복습해야지 !!! 


 

 

아래는 내가 제출한 코드. 

 

 

 

아래는 내가 못풀었던 방식을 구현했길래

너무 잘풀어서 가져왔다.. 똑똑이들 넘 많다 🥲🥲