목록Java (6)
Dino Rudy

객체 배열 Arrays.sort()와 Comparator를 이용해 정렬 java.util.Arrays에서 제공하는 많은 메서드 중 정렬 메서드가 있습니다. 위 이미지에서 확인할 수 있듯이 Arrays에서 제공하는 sort()는 배열을 파라미터로 받습니다. 따라서 Collections에 포함되는 ArrayList나 LinkedList 타입은 Arrays.sort()의 파라미터가 되지 못합니다. Arrays.sort()에 배열이 입력값으로 들어가게 되는데 일반적인 primitive 타입을 원소로 갖는 배열은 원소끼리의 비교가 가능하게 되어있습니다. 하지만 사용자가 정의한 클래스로부터 객체 배열을 생성한 경우 무엇을 기준으로 비교를 할지 기준을 정해줘야 합니다. 어떤 기준으로 정렬을 할지를 Comparator..

배열 돌리기 3 16935번 solved.ac 실버 2 https://www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 문제 해석 및 풀이 배열 돌리기 3 문제는 크기가 N x M 2차원 배열에 6가지 연산을 구현해야 합니다. 1. 상하반전 2. 좌우반전 3. 오른쪽으로 90도 회전 4. 왼쪽으로 90도 회전 5. 4등분 후 시계방향으로 위치 조정 6. 4등분 후 반시계 방향으로 위치..

배열 돌리기 1 16926번 solved.ac 실버 3 티어 https://www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net 문제 해석 크기 N x M의 2차원 배열이 주어졌을 때 모든 원소들을 반시계 방향으로 돌려야 합니다. 제가 풀이한 방법은 시계방향으로 돌리면서 앞에 있는 원소를 당겨 오는 방법입니다. 반시계 방향으로 돌리게 되면은 원소를 미는 방식으로 덮어쓰게..
조합 2차원 배열에서 R개의 원소를 뽑는 조합입니다. 기본적인 방법은 조합과 유사하지만 뽑고자하는 원소의 행과 열을 뽑는 방법으로 나누기와 모듈러 연산을 사용합니다. import java.util.Arrays; //2차원 배열에서 조합! public class Combination2 { static int [][] arr; static int [][]selected; static int N,M,R; static public void makeCombination(int cnt, int start) { if(cnt==R) { System.out.println(Arrays.deepToString(selected)); }else { for(int i=start;i
순열 조합에 이어 알고리즘 문제를 풀 때 많이 쓰이는 순열입니다. 순열은 조합과 다르게 순서가 중요합니다. 순열은 nPr로 표현 할 수 있으며 n개중 r개를 뽑아 나열하는 수열입니다. 구현할 때 조합과 가장 큰 차이점은 isSelected라는 boolean 배열을 만들었다는 점과 조합은 for구문에서 start부터 시작했는데 순열은 i=0부터 시작합니다. import java.util.Arrays; public class BasicPermutation { static int [] selected; static boolean [] isSelected; static int count; static void makePermutation(int[] arr, int R, int cnt) { //순열을 만들때 끝나..
조합 알고리즘 문제풀이를 하다 보면 조합을 구해야 하는 경우가 많습니다. 대표적으로 BruteForce 문제 같은 경우, 여러 가지 경우를 시도해야 하는데 이때 조합, 중복조합, 순열, 중복순열, 부분집합 등이 쓰일 때가 많습니다. Python이나 C++ 같은 경우 라이브러리가 제공되지만 JAVA 같은 경우 내부 라이브러리에서 조합과 순열 등을 제공하지 않고 구글? 에서 제공하는 라이브러리를 이용하면 된다고 들었습니다. 하지만! 구현이 그렇게 어려운 것도 아니고 라이브러리에 의존하지 않는 게 좋다고 들어서 배우고 공부한 내용을 토대로 구현을 해보았습니다. import java.util.Arrays; public class Combination { static int [] selected; static i..