곽로그

[백준 2460 | java, python] 주사위 세개 본문

알고리즘/백준

[백준 2460 | java, python] 주사위 세개

일도이동 2022. 4. 22. 14:00
반응형

문제 

https://www.acmicpc.net/problem/2480

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

 

풀이

 리스트와 집합(set)을 활용하였다. 리스트로 입력받은 숫자배열에 대하여, 같은 숫자가 3개라면 set의 길이가 1이고, 같은 숫자가 2개라면 set의 길이가 2, 같은 숫자가 없다면 set의 길이가 3인 것으로 나누어서 풀었다

 

 이때 같은 숫자가 2개인 경우, 같은 숫자를 알아내는 방법으로는 set를 순회하여 list에서 set 요소를 제거하면 list에 같은 숫자만 남는다는 것으로 풀었다

 

Python

num_list = list(map(int,input().split()))
num_set  = set(num_list)
result = 0
if len(num_set) == 3 :
    result = max(num_list) * 100
elif len(num_set) == 2:
    #같은 눈 찾기 (리스트에서 set요소 삭제)
    for i in num_set:
        num_list.remove(i)
    result = 1000 + num_list[0] *100
elif len(num_set) ==1:
    #모두 같은 눈
    result = 10000 + num_list[0] * 1000
    
print(result)

 

Java

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine()," ");

        List<Integer> numList = new ArrayList<>();
        Set<Integer> numSet = new HashSet<>();

        while(st.hasMoreTokens()){
            int num = Integer.parseInt(st.nextToken());
            numList.add(num);
            numSet.add(num);
        }

        int result = 0;
        if (numSet.size() == 3){
            Collections.sort(numList);
            result = numList.get(numList.size()-1) *100;
        }
        else if(numSet.size() ==2){
            Iterator<Integer> iter = numSet.iterator();
            while(iter.hasNext()) {
                numList.remove(iter.next());
            }
            result = 1000 + numList.get(0) * 100;
        }
        else if(numSet.size() ==1){
            result = 10000 + numList.get(0) * 1000;
        }
        System.out.println(result);

    }
}
반응형
Comments