목록전체 글 (135)
100세까지 코딩

문제 설명 풀기 전 생각 반복 규칙은 간단하니 우선순위 큐의 정렬 기준을 만드는게 핵심 절대값을 추출하여 절대값이 작은 것을 우선 절대값이 같으면 음수를 우선 큐를 정의한 후, 입력이 = 0일때 pq가 비어있으면 '0'출력 아니면 큐에서 한개 출력 입력이 0이 아니면 큐에 삽입 import java.util.PriorityQueue; import java.util.Scanner; public class Baek11286{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); StringBuilder sb = new StringBuilder(); PriorityQueue pq = n..

문제 설명 풀기 전 생각 앞 부분은 출력, 뒷 부분은 입력이 이루어지고 있기 때문에 큐 자료구조 사용 큐에 1부터 입력받은 숫자만큼 입력 문제처럼 제일 위에 있는 것 지우고 그 다음, 제일 위에 있는 것을 빼서 다시 입력 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Baek2164 { public static void main(String[] args) { Queue q = new LinkedList(); Scanner sc = new Scanner(System.in); int N = sc.nextInt(); for(int i = 1; i 1; i--){ q.remove(); q.add..

문제 설명 풀기 전 생각 일단 어디까지 반복을 해야 하는지 너무 헷갈렸다. 평소 반복문처럼 증가수를 arrLen까지 반복을 돌리기로 결정 증가수가 배열보다 작으면 같아질 때까지 stack에 넣고 같으면 빼고 arrIndex++ 증가수가 배열 수 보다 작으면 pop만 하고 arrIndex++ 대신, pop이 배열 숫자보다 크면 불가능하므로 NO출력 import java.util.Scanner; import java.util.Stack; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int arrLen = sc.nextInt(); int[] arr = new int[arrLen]; S..

문제 설명 풀기 전 생각 배열에 입력받은 String 저장 시작 index를 설정하여 배열길이까지 반복 시작 index가 'A', 'C', 'G', 'T'에 해당하면 그 값++ 부분문자열 길이만큼 돌았으면 중간 점검으로 만족하는지 확인 시작 index를 다시 앞으로 당기고 다른 변수는 다 0으로 초기화해서 하나씩 확인 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args)throws Exception { BufferedReader bf = new BufferedReader(new ..

문제 설명 풀기 전 생각 시간을 줄이기 위해 그전에 배운 BufferedReader 사용 입력 받은 것을 잘라서 배열에 저장후 오름차순 정리 투 포인터를 배열 처음(start_index)과 끝(end_index)에 두기 (arr[start] + arr[end] M)이면 end-- (arr[start] + arr[end] == M)이면 start++ 과 end-- 동시에 하고 cnt++ import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Bae..