본문 바로가기

분류 전체보기

(31)
[백준] 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...
[백준] 2018번 수들의 합5 - 투포인터 / 배열 / if문 / while문 문제 로직 투포인터를 이용해 start_index와 end_index로 구분한다. 합한 값을 num과 비교해가며 투포인터의 값을 변경한다. sum과 num의 값이 같아졌을 때 count의 값에 +1을 해준다. (count가 처음에 1로 초기화한 이유는 자기자신의 값이 sum = num이기 떄문이다.) My Code import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int count = 1; int end_index = 1; int start_index = 1; int sum = 1; while..
[백준] 11659번 구간 합 구하기4 - 구간 합 / 배열 / BufferedReader / StringToken 문제 로직 수의 개수 변수 num 선언&입력 받기 횟수 변수 size 선언&입력 받기 수를 저장할 배열(numArray) 선언&크기 지정 구간 합을 저장할 배열(sumArray) 선언&크기 지정 결과를 저장할 배열(resultArray) 선언&크기 지정 1. 반복문 - 수를 입력 받아 numArray에 저장 - 구간 합을 계산하여 sumArray에 저장 2. 반복문 (위의 반복문과 따로 해야 numArray의 구간 합으로 저장한 값에 의해 sumArray값이 변하지 않음) - numArray에 구간 합을 계산하여 저장 *sumArray는 1, 2, 3의 구간 합을 0, 1, 3으로 저장하고 numArray는 1, 3, 6으로 저장함 3. 반복문 - 인덱스 변수 a, b선언&입력 받기 - 인덱스 변수에 따..