본문 바로가기

Java

(20)
[백준] 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(..
[백준] 1874번 스택 수열 - Stack / push() / pop() / 스택의 원리 문제 로직 수열의 길이 입력 받기 N 수열을 담을 배열 선언 & 크기 설정 1. 반복문 - 배열에 수열 입력 받기 스택 선언 결과 판별할 부울 변수 선언 및 초기화 오름차순 자연수 변수 선언 및 초기화 StringBuffer 선언(출력할 값) 2. 반복문 - 수열의 값이 오름차순 자연수 값보다 크거나 같을 때 같을 때까지 반복 -> 스택에 push, + 값 저장 클 때 -> 스택 pop(), - 값 저장 - 수열의 값이 오름차순 자연수 값보다 작을 때 스택 pop() pop한 값이 배열의 값보다 클 때 -> 불가능 -> NO출력, 결과값 false, 프로그램 종료 pop한 값이 배열의 값보다 작을 때 -> - 값 저장 My Code import java.util.Scanner; import java.ut..
[백준] 12891번 DNA 비밀번호 - 슬라이딩 윈도우 / switch / 함수 문제 로직 입력 받을 문자열의 길이 입력 받기 부분 문자열의 길이 입력 받기 입력 받을 문자열을 담는 배열 선언 & 크기 설정(S로) 부분문자열에 포함되어야 할 {‘A’, ‘C’, ‘G’, ‘T’} 의 최소 개수를 담는 배열 선언 & 크기 설정 최소 개수를 입력한 문자열과 비교할 배열 선언 & 크기 설정 만들 수 있는 비밀번호 종류의 수를 담는 변수 선언 및 초기화 1. 반복문- 문자열 입력 받고 배열에 저장 2. 반복문- 최소 개수 입력 받고 배열에 저장 슬라이딩 윈도우를 실행할 수 있는 코드 작성 . . . 슬라이딩 윈도우를 하기 위해 부분 문자열마다 시작과 끝만 고치고 싶은데 그 부분이 어려웠다. 시간복잡도를 O(n)이 되도록 하려면 이중 반복문을 못 써서 이 부분에 고민이 많았다. 선형으로 반복하..
[백준] 1940번 주몽 - 투포인터 / 시간 제한 맞추기 / 배열 정렬 / BufferReader 문제 로직 재료의 개수 변수 입력 받기 갑옷에 필요한 수 변수 입력 받기 배열 생성 count 변수 초기화 1. 반복문 - 배열에 숫자 입력 받아서 저장 2. 반복문 - i를 start_index, j를 end_index로 생각하고 로직을 세웠다. - if문: 배열의 2개의 값을 더했을 때 armorNum과 같으면 count에 1을 더함 count 값 출력 My Code import java.io.IOException; import java.util.Scanner; public class Main { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); int ingreNum = sc...