반응형

전체 글 201

[백준] 큐 - 10845

문제는 어렵지 않았는데 가장 뒤에 있는 수를 가져오는 back 명령어 구현이 특이했다. 선입선출 구조여서 push한 정수를 변수에 저장하여 출력하는 형식으로 구현했음 메모리 : 19000 KB 시간 : 196 ms 코드길이 : 1370 B import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ Buffe..

백준/자료구조 2023.04.06

[백준] 스택 - 1406

1.중간에 삽입 시에 현재커서 뒷부분을 모두 스택에 옮기기 + 실제 sb에서도 삭제하기, 삽입이 끝나면 스택에 있던 데이터를 모두 sb에 더해줌 >> 시간초과. package BackJun; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public class Stack_Q1406 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStream..

백준/자료구조 2023.04.05

[백준] 스택 - 10828

switch-case문으로 풀었음. 직접 stack 구현해서 풀어보기도 해보기** 내 코드 메모리 : 18984 KB 시간 : 200 ms 코드길이 : 1302 B 1등 코드 메모리 : 12144 KB 시간 : 84 ms 코드길이 : 2912 B [내 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new..

백준/자료구조 2023.04.05

[백준] 9465 : 스티커

다른 분들의 풀이를 봐도 감도 못 잡다가, 그냥 해보니까 됐다(?) 처음에 또 최소경우 고려 안 해서 런타임에러 뜸 배열을 [2][N+1]로 바꾼 후 맞았다 가장 긴 증가하는 부분수열에서처럼 DP를 해당 인덱스까지의 합으로 두고 풀었음. 내가 푼 건 맞는데 뭔가 찝찝.. 머리로 푼 게 아니라 몸으로 푼 느낌.. DP문제를 더 풀어봐야겠다 1등코드 메모리 : 20324 KB 시간 : 192 ms 코드길이 : 1780 B 내 코드 메모리 : 110976 KB 시간 : 728 ms 코드길이 : 1154 B >> 1등과의 차이가 너무 크다... 1등 코드 공부 꼭 하기 [1등코드] import java.io.DataInputStream; import java.io.IOException; public class ..

알고리즘/DP 2023.04.04

[백준] 11054 : 가장 긴 바이토닉 수열

입력되는 배열의 인덱스를 기준으로 앞에서는 가장 긴 오름차순 배열, 뒤에서는 거꾸로 시작하는 가장 긴 오름차순 배열을 합하면 되는 문제이다. 이때 하나가 겹치므로 -1 해줘야 함. 1등코드 메모리 : 13176 KB 시간 : 76 ms 코드길이 : 4653 B 내 코드 메모리 : 14556 KB 시간 : 152 ms 코드길이 : 1284 B [상위권 코드] class Main { public static void main(String[] args) throws Exception { int N = read(); int[] arr = new int[N], lis = new int[N], tmp = new int[N]; int k, l = 0; for (int i = 0; i < N; i++) { arr[i]..

알고리즘/DP 2023.04.04

[백준] 11055 : 가장 큰 증가하는 부분수열

가장 긴 증가하는 부분수열에서 살짝 변형된 문제였다. DP초기화를 같은 인덱스 위치의 수를 그대로 넣어서 해주는 것만 달랐음. 1등 코드 메모리 : 13260 KB 시간 : 88 ms 코드길이 : 1033 B 내 코드 메모리 : 14944 KB 시간 : 152 ms 코드길이 : 885 [1등 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int N; static int max; static int[] arr = new int[1001]; static int[] D = ne..

알고리즘/DP 2023.04.04

[백준] 11053 : 가장 긴 증가하는 부분 수열

DP 테이블을 사용하는 것에 익숙해지지 않아서 그런지 엄청 헤맸다. 다른 분들의 코드를 봐도 모르겠어서 한참 헤매다가 개념부터 정리 후에 재도전 함. 그리고 부분수열에 대한 정의를 이상하게 기억하고 있었음;; 수학적인 부분도 주의해서 생각하자. LIS 중 가장 기본이라고 할 수 있는 문제니까 이번에 제대로 숙지해둬서 다행이라고 생각. 그리고 배열의 길이가 1일 때를 생각 못 해서 또 틀렸다. 항상 최솟값의 경우를 한 번 더 생각하자. 그리고 n의 크기가 작아서 이중포문을 통해 해결했지만 이때의 시간복잡도가 O(N^2)이므로 n의 크기가 조금이라도 커지면 굉장히 비효율적인 코드이다. 이분탐색을 통한 해결방법도 있으니 숙지해두자. 1등 코드 메모리 : 12924 KB 시간 : 72 ms 코드길이 : 838 ..

알고리즘/DP 2023.04.04

[백준] 10815 : 숫자카드

이진탐색을 사용하고 싶었는데 정확한 구현 방법이 기억이 안나서 찾아보고 구현함. 반복형과 재귀형 둘 다 사용해봤는데 메모리와 시간에 눈에 띄게 큰 차이는 없었다. 2등코드 메모리 : 41008 KB 시간 : 360 ms 코드길이 : 1929 B 내 코드 메모리 : 108760 KB 시간 : 1268 ms 코드길이 : 1234 B >> 상위권 코드와의 차이가 너무 큼.. [2등 코드] import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException; public class Main { static class Reader { private final int BUFFER_SIZE = 1

알고리즘/정렬 2023.04.03

[백준] 1181 : 단어 정렬

어떻게 풀면 좋을지 고민하다 제한해둔 시간이 지나서 답을 찾아보았다. sort메서드의 compare 함수를 재정의 하여 내가 원하는대로 정렬할 수 있는 방법이 있었다. 1등 코드 메모리 : 18252 KB 시간 : 164 ms 코드길이 : 2755 B 내 코드 메모리 : 25700 KB 시간 : 328 ms 코드길이 : 898 B [상위 코드] - 1등과의 차이가 꽤 남 ( 21260 KB, 244 ms, 1103 B ) import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; p..

알고리즘/정렬 2023.04.03

[백준] 11399 : ATM

풀이과정 시간의 합이 최소가 되려면 출력시간이 오름차순으로 배열되어야 함. 기다림 + 인출 시간은 앞의 변수들 + 현재 변수를 모두 합한 값 Array에 sort 함수 사용할 생각 못 하고 ArrayList sort 함수 사용함. 으이그 1등 코드 메모리 : 12836 KB 시간 : 72 ms 코드길이 : 498 B 내 코드 메모리 : 14456 KB 시간 : 144 ms 코드길이 : 1004 B [상위 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class M..

알고리즘/정렬 2023.04.01
반응형