일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- Java
- jetpack
- Hilt
- 자바set
- filternotnull()
- 배열
- 자료형
- 프로그래머스
- android
- 파이썬
- 티스토리챌린지
- disposableeffect
- list
- Dependency
- 파이썬문법
- programmers
- nullpointerexception방지
- 오블완
- 백준파이썬
- 리스트
- Python
- 백준
- ContentProvider
- compose
- 문자열
- composelifecycle
- 자바
- Kotlin
- Provider
- 자바리스트정렬
Archives
- Today
- Total
study gomi
[프로그래머스/Programmers] 코딩 기초 트레이닝 > 주사위 게임3 (자바 Java) 본문
728x90
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/181916
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 제출
import java.util.HashSet;
import java.util.Set;
import java.util.Collections;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
class Solution {
public int solution(int a, int b, int c, int d) {
int answer = 0;
List<Integer> dice = Arrays.asList(a, b, c, d);
Collections.sort(dice);
Set<Integer> dice_set = new HashSet<>();
Collections.addAll(dice_set, a, b, c, d);
int setSize = dice_set.size();
List<Integer> dice_list = new ArrayList<>(dice_set);
// Collections.sort(dice_list);
if(setSize == 1){answer = 1111 * a;}
else{
int d1 = dice_list.get(0);
int d2 = dice_list.get(1);
int d1_cnt = Collections.frequency(dice, d1);
int d2_cnt = Collections.frequency(dice, d2);
// System.out.printf("d1 id %d, d1_cnt is %d\n", d1, d1_cnt);
// System.out.printf("d2 id %d, d2_cnt is %d\n", d2, d2_cnt);
if(setSize == 2){
int gap = Math.max(d1, d2) - Math.min(d1, d2);
switch(d1_cnt){
case 1 :
answer = (int) Math.pow((10 * d2 + d1), 2);
break;
case 2:// 두 개 - 두 개씩 같음
answer = (d1 + d2) * gap;
break;
case 3:
answer = (int) Math.pow((10 * d1 + d2), 2);
break;
}
}
else if(setSize == 3){
int d3 = dice_list.get(2);
// a, b 같고 c, d 각자
if (d1_cnt == 2){
answer = d2 * d3;
} else if(d2_cnt == 2){
answer = d1 * d3;
} else{
answer = d1 * d2;
}
}
else{answer = d1;}
}
return answer;
}
}
참고
정렬 : https://80000coding.oopy.io/21cb57a3-681b-404d-a4ac-8ab0e7289bc0
[JAVA] Sort 사용 (Arrays, Collections)
Java’s Sort
80000coding.oopy.io
거듭제곱 : https://coding-factory.tistory.com/531
[Java] 자바 거듭 제곱 구하기 Math.pow()
자바에서 특정값의 제곱을 구하려면 java.lang.Math 클래스의 pow()메소드를 사용하면 됩니다. java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있습니다. Math 클래스가 제공하는
coding-factory.tistory.com
집합 : https://blog.naver.com/heartflow89/220994601249
[JAVA/자바] Set - HashSet, TreeSet, LinkedHashSet
이전에 알아본 List(ArrayList, Vector, LinkedList) 컬렉션과는 다른 특징들을 갖는 Set 컬...
blog.naver.com
728x90
반응형
'Practice > Programmers' 카테고리의 다른 글
[프로그래머스/Programmers] 코딩 기초 트레이닝 > 대소문자 바꿔서 출력하기 (자바 Java) (0) | 2024.08.20 |
---|---|
[프로그래머스/Programmers] 코딩 테스트 입문 > 문자열 계산하기 (파이썬 Python) (0) | 2024.06.13 |
[프로그래머스/Programmers] 코딩 기초 트레이닝 > 문자열 여러 번 뒤집기 (자바 Java) (0) | 2024.06.13 |
[프로그래머스/Programmers] 코딩 기초 트레이닝 > 배열 만들기 2 (자바 Java) (0) | 2024.06.11 |
[프로그래머스/Programmers] 코딩테스트 기초 트레이닝 > 코드 처리하기 (자바 Java) (0) | 2024.06.05 |