[Programmers / Level2] 152996. 시소 짝꿍(Java)

이하얀·2024년 10월 1일
0

🕊️ 프로그래머스

목록 보기
52/62

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 균형을 이루는 시소 짝꿍의 쌍이 몇 쌍 존재하는지 계산하는 문제


알고리즘


풀이 시간 : 47분

  • weights 오름차순 정렬
  • map을 이용해 weights를 순회
    • 맵에 a가 있다면 -> 가져오기 (중복체크)
    • 맵에 b가 있다면 -> 가져오기 (중복체크)
    • 맵에 c가 있다면 -> 가져오기 (중복체크)
    • 맵에 d가 있다면 -> 가져오기 (중복체크)
import java.util.*;

class Solution {
    public long solution(int[] weights) {
        long answer = 0;
        
        Arrays.sort(weights);
        Map<Double, Integer> map = new HashMap<>();
        
        for(int i : weights){
            double a = i * 1.0;
            double b = (i * 2.0) / 3.0;
            double c = (i * 1.0) / 2.0;
            double d = (i * 3.0) / 4.0;
            
            if(map.containsKey(a)){
                answer += map.get(a);
            }
            
            if(map.containsKey(b)){
                answer += map.get(b);
            }
            
            if(map.containsKey(c)){
                answer += map.get(c);
            }
            
            if(map.containsKey(d)){
                answer += map.get(d);
            }
            
            map.put((i * 1.0), map.getOrDefault((i * 1.0), 0)+1);
            
            
        }
        return answer;
    }
}


결과

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글