목록코딩테스트/자바 (46)
100세까지 코딩
문제 설명 풀기 전 생각 앞 부분은 출력, 뒷 부분은 입력이 이루어지고 있기 때문에 큐 자료구조 사용 큐에 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..
문제 설명 풀기 전 생각 자연수 1부터 시작이니 start와 end라는 투 포인터를 1로 지정 end가 N이 되면 자기 자신도 합으로 나타나지므로 N+1까지 반복 (sum > N)이면 start 빼고, (sum < N)이면 end 더하고 포인터 옮기기 (sum == N)이면 cnt++; sum에서 start 빼고 start 포인터 옮기기 import java.util.Scanner; public class Baek2018 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int sum = 0; int start = 1; int end = 1; int cnt = 0; whil..
문제 설명 풀기 전 생각 배운 대로 구간 합 공식을 사용 인덱스는 0부터 시작하지만 구간은 1부터 시작하므로 [N+1] 배열 선언 구간 합 배열은 S [1]부터 채워 나가기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Baek11659 { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer..