곽로그
[백준 2460 | java, python] 주사위 세개 본문
반응형
문제
https://www.acmicpc.net/problem/2480
풀이
리스트와 집합(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);
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 25083, JAVA] 새싹 ( java escape 문자) (0) | 2023.03.19 |
---|---|
[백준 10811, JAVA] 바구니 뒤집기 (0) | 2023.03.12 |
[백준 2525, python] 오븐 시계 (0) | 2022.04.14 |
[백준2588 python] 곱셈 (0) | 2022.04.14 |
[백준 15658, Java] 연산자 끼워넣기(2) (0) | 2021.06.17 |
Comments