본문 바로가기

Java

(23)
[Java] DFS 구현하기 - 재귀 함수 이용 / 인접 리스트 / 배열 ex) Code import java.io.*; import java.util.LinkedList; public class Main { static LinkedList[] linkedList; static boolean[] visit; public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //정점과 간선 입력&저장 String str = bf.readLine(); int n = Integer.parseInt(str.split(" ")[0]); int m = Integer.parseInt(str.split(" ")[1]); ..
[백준] 1517번 버블 소트 - 병합 정렬 / 버블 정렬 문제 My Code import java.io.*; import java.util.StringTokenizer; public class Main { static int[] testArray; static int count; public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(bf.readLine()); int[] array = new int[N]; testArray = new int[N]; count = 0; StringTokenizer st = new StringTokeniz..
[백준] 11004번 K번째 수 - 퀵정렬 / 오름차순 정렬 문제 My Code import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int N; int findindex; int [] input = new int[2]; int start, end, pivot; StringTokenizer st = new StringTokenizer(bf.readLine()); for (int i = 0; i pivot && end < pivot) { numArray[i..
[백준] 11399번 ATM - 삽입정렬 / 오름차순 정렬 / 계산 문제 로직 사람의 수 입력받기 필요한 시간 배열 선언 및 크기 지정 반복문 - 필요한 시간 입력 받기 & 배열에 저장 while 반복문 - 삽입 정렬한 부분의 젤 큰 값(오름차순 정렬되어있으므로 가장 인덱스가 큰 값)이 선택한 데이터보다 클 때 - 1. for 반복문 -> 삽입 정렬한 부분에서 선택한 데이터이 삽입될 인덱스 찾음(point) -> 반복문 종료 - 선택한 데이터값 저장(select) - 2. for 반복문 - 선택한 데이터가 삽입할 부분의 앞의 값들을 앞으로 이동 - 선택한 데이터 삽입 - index값 증가 3. for 반복문 - 합 계산 -> 합 출력 My Code import java.io.*; import java.util.StringTokenizer; public class Main..
[백준] 1427번 소트인사이드 - 내림차순 정렬 / 선택정렬 문제 로직 정렬하려는 수 입력 받기 정렬하려는 수와 같은 길이의 문자열 선언 배열 선언 double형 변수 선언 최댓값 인덱스 변수 선언 및 초기화 1. 반복문 - 정렬하고자하는 변수의 자릿수별로 doulbe형 변수에 저장 (Math.pow()는 double형으로 반환함) - 배열에 저장한 값을 정수형으로 변환 후 차례대로 저장 2. 반복문 - 최댓값 초기화 - 3. 반복문 - 배열에서 최댓값 찾아서 저장 - if문 -> 최댓값과 배열의 값이 같을 때 -> 그때의 인덱스 값 저장 - 최댓값과 배열의 값 스왑하기 4. 반복문 - 내림차순 정렬된 배열의 값 순서대로 출력 My Code import java.io.*; public class Main { public static void main(String[..
[백준] 2750번 수 정렬하기 - 버블 정렬 구현 / BubbleSort / 오름차순 문제 로직 배열의 크기 입력 받기 배열 선언 및 크기 설정 반복문 - 배열 값 입력 받기 while반복문 - 인덱스 변수 선언 및 초기화(i, j) - 반복문 - 앞의 배열 값이 뒤의 배열 값보다 클 때 -> swap - 인덱스 증가 - N값 감소 -> 반복 횟수 맞추기 *인덱스 변화 i = 0, j = 1 -> i = 1, j =2 -> i = 2, j = 3 -> i = 3, j =4 N--; i = 0, j = 1 -> i = 1, j =2 -> i = 2, j = 3 N--; i = 0, j = 1 -> i = 1, j =2 N--; i = 0, j = 1 N--; My Code import java.io.*; public class Main { public static void main(Stri..
[백준] 11286번 절댓값 힙 - 우선순위 큐 / 오름차순 정렬 / 반환 값 변화 / 절댓값 문제 로직 연산 개수 입력받기 큐 선언(우선순위 큐를 아예 구현하려고 큐로 선언함ㅜ) 1. 반복문 - 숫자 입력 받기 - 숫자가 0이 아닐 때 -> 큐에 삽입 - 숫자가 0일 때 -> 큐가 비었을 때 -> 0출력 -> 큐가 안 비었을 때 -> 출력할 값을 변수에 저장 후 출력 sign함수 - 결과값 변수 선언 및 초기화 - 결과를 저장할 배열 선언 및 크기 설정 - 음수값 저장할 배열 선언 및 크기 설정 - 양수값 저장할 배열 선언 및 크기 설정 1. 반복문 - 큐 안의 값이 음수일 때 -> minus배열에 값 불러와 저장 -> 배열 오름차순 정렬 - 큐 안의 값이 양수일 때 -> plus배열에 값 불러와 저장 -> 배열 오름차순 정렬 2. 반복문 절댓값 크기를 비교하며 배열 값을 큐에 삽입 -> 이 로..
[백준] 2164번 카드2 - 큐(Queue)/선입선출/스택을 이용한 방법/ 문제 로직 N 입력받기 num 변수 선언(반복문의 횟수 변화에 이용 예정) 스택1, 2선언 1. 반복문 - 스택에 1~N값 삽입 2. while 반복문 - stack에 값이 1개만 남을 때까지 횟수(stack.size()로 하면 안의 for반복문에서 걸림) 위와 같은 로직으로 2개의 스택에서 pop(), push()하며 후입선출인 스택을 선입선출이 되도록 구현했다. 큐를 이용하면 더욱 효율적이었을 텐데 그 생각을 처음에 못했다. 마지막 남은 카드 값 출력 My Code(스택 이용) import java.io.*; import java.util.Scanner; import java.util.Stack; public class Main { static int n; public static void main(..