이차원 배열에서 행 중 가장 작은 수만 골라서 그 중 가장 큰 수를 찾는 게임
이차원 배열을 입력받으면서 그 중 작은수들을 고르고 한번 더 비교를 통해 더 큰 수를 찾는다.
현재 문제에는 몇번째 행이라던가 그런 추가 조건이 없기 때문에 비교적 쉬운 문제다.
사실 배열은 생성할 필요도 없지만 현재 테스트 코드에서 모든걸 끝내기 위해 작성했다.
@Test
void 그리디_숫자_카드_게임() {
// 배열의 한 행을 고르는데, 배열의 행에서 가장 작은값이 선택될 경우 가장 큰 값을 고르는 방법
int n = 3;
int m = 3;
int[][] arr = {
{3,1,2},
{4,5,4},
{2,2,2}
};
List<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
int min = 100000;
for (int j = 0; j < m; j++) {
int value = arr[i][j];
if (value < min) {
min = value;
}
}
list.add(min);
}
Integer max = Collections.max(list);
System.out.println(max);
Collections.sort(list);
System.out.println(list.get(list.size()-1));
}
기존에는 항상 정렬 후 첫번째 값이나 맨 뒤의 값을 가져오는 형태를 취했는데
파이썬 min이 부러워서 보니까 Collections.min, max를 찾았다.
내가 하는 실무에서는 너무 사용을 안하다보니 몰랐는데 정렬하고 찾는것보다 내 알고리즘 풀이 시간을 줄여줄 것 같다.
'Algorithm' 카테고리의 다른 글
그리디 - 큰 수 구하기 (0) | 2022.01.04 |
---|---|
종만북이 설명하는 알고리즘 풀이 순서 (0) | 2021.06.29 |
Hash - 1 (0) | 2021.06.08 |
[C++] 소문자 대문자 변형 (0) | 2019.04.25 |
부분수열 (Subsequence) (0) | 2019.03.31 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Word
- java
- Chirpy
- multirow insert
- Review
- Spring
- JPA
- deployer
- tomcat
- springboot
- Algorithm
- querydsl
- Kafdrop
- Kafka
- 도커
- c++
- @AutoConfigureJsonTesters
- docker
- OS
- Intellij
- Book
- github
- GIT
- vscode
- 그리디
- gradle
- MySQL
- fillInStackTrace
- 캡션
- @Inherited
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함