[JAVA] 알고리즘 : 정렬- 장난꾸러기 import java.util.*; public class Main { public ArrayList solution(int n, int[] arr){ ArrayList answer = new ArrayList(); // 깊은 복사 - tmp로 복사해도 원래 값인 arr이 남아있음 int[] tmp = arr.clone(); Arrays.sort(tmp); // 오름차순 정렬 for(int i=0; i ALGORITHM 2022.07.27
[JAVA] 백준 1152번- 단어의 개수 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net isBlank() 사용 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc= new Scanner(System.in); String str = sc.nextLine(); String[] arr = str.split(" "); int cnt=0; for(String x : arr){.. ALGORITHM 2022.07.26
[JAVA] 알고리즘 : 정렬- 중복 확인 import java.util.*; public class Main { public String solution(int n, int[] arr){ String answer="U"; Arrays.sort(arr); //오름차순 정렬 for(int i=0; i ALGORITHM 2022.07.26
[JAVA] 알고리즘 : 정렬- LRU(캐시, 카카오변형) 예시 입력 5 9 1 2 3 2 6 2 3 5 7 import java.util.*; public class Main { public int[] solution(int size, int n, int[] arr){ int[] cache=new int[size]; for(int x : arr){ int pos=-1; // 인덱스 for(int i=0; i=1; i--){ cache[i]=cache[i-1]; } } else{ // hit라면 for(int i=pos; i>=1; i--){ // hit가 난 지점부터 한칸씩 밀리게 cache[i]=cache[i-1]; } } cache[0]=x; } return cache; } public static void main(String[] args) { Main .. ALGORITHM 2022.07.26
[JAVA] 알고리즘 : 정렬- 삽입정렬 삽입정렬 2번째 원소부터 시작하여 그 앞(왼쪽)의 원소들과 비교하여 삽입할 위치를 지정한 후, 원소를 뒤로 옮기고 지정된 자리에 자료를 삽입하여 정렬한다. import java.util.*; public class Main { public int[] solution(int n, int[] arr){ for(int i=1; i=0; j--){ // 2. if(arr[j]>tmp) arr[j+1]=arr[j]; else break; } arr[j+1] =tmp; // 3. } return arr; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n=sc.nextInt().. ALGORITHM 2022.07.25
[JAVA] 알고리즘 : 정렬- 버블정렬 버블정렬 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다. import java.util.*; public class Main { public int[] solution(int n, int[] arr){ for(int i=0; i ALGORITHM 2022.07.25
[JAVA] 알고리즘 : 정렬- 선택정렬 선택 정렬 주어진 리스트 중에 최소값을 찾는다. 그 값을 맨 앞에 위치한 값과 교체한다. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다. import java.util.*; public class Main { public int[] solution(int n, int[] arr){ for(int i=0; i ALGORITHM 2022.07.25
[JAVA] 백준 13335번- 트럭 https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; import java.util.concurrent.LinkedBlockingDeque; public class Main { public static .. ALGORITHM 2022.07.24
[JAVA] 백준 5464번- 주차장 https://www.acmicpc.net/problem/5464 5464번: 주차장 시내 주차장은 1부터 N까지 번호가 매겨진 N개의 주차 공간을 가지고 있다. 이 주차장은 매일 아침 모든 주차 공간이 비어 있는 상태에서 영업을 시작하며, 하룻동안 다음과 같은 방식으로 운영 www.acmicpc.net -주차장에 빈공간이 여러개 있으면 주차장 번호가 가장 작은 곳으로 감 -주차장에 비어있는 공간 없으면 빈공간 생길때까지 차량 대기 이 때, 도착한대로 줄 서서 대기(큐) -주차료(주차한 차량의 무게 * 단위 무게당 요금 의 합)를 구하는 문제 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader.. ALGORITHM 2022.07.22
[JAVA] 백준 1157번- 단어 공부 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputSt.. ALGORITHM 2022.07.22