Study/OnlineJudges
-
[BOJ] 가장 긴 증가하는 수열 (LIS) 시리즈; 그리디, DP, 이진탐색 (JavaScript)Study/OnlineJudges 2021. 3. 11. 19:07
회고 역시나 DP는 점화식이 가장 큰 관건인 것 같다 구현한 코드 자체는 매우 간단하지만 점화식 구하는 것이 어려웠다 점화식을 제대로 못 구하면 몇 시간을 붙잡고 있어도 코드가 산으로 가고 제대로 된 답을 구하기 어려워진다는 걸 다시 한번 느꼈다..😖 문제 풀이 완전 탐색으로 모든 부분 수열을 구하는 방식으로 구현하면 시간복잡도가 O(N^3) ~ O(2^N)까지 증가하기 때문에 매우 비효율적이다 가장 첫번째 문제인 11053번 문제만해도 최대 입력값이 1,000인데, 시간복잡도가 2^1000이 되면 당연히 시간 내 답을 구할 수 없다 최장 증가 부분 수열의 길이; 그리디한 방법 수열의 '길이'만 구하는 경우에는 그리디한 방법으로 해결할 수 있다 최장 길이를 구할 때 실제 부분 수열을 가지고 구하는 것이 ..
-
[BOJ] 1759. 암호 만들기 (JavaScript)Study/OnlineJudges 2021. 3. 10. 17:16
문제 url : https://www.acmicpc.net/problem/1759 회고 기본적인 조합 문제 + 최소/최대/정렬 조건 추가된 유형 조합을 구현할 수 있다면 크게 어려운 문제는 아닌데, 초반에 막 짰다가 시간 초과 에러가 났다 처음 맞은 코드처럼 굳이 자음과 모음을 분리해서 구할 필요는 없었고, 인덱스를 하나씩 증가시키면서 자음일 경우와 모음일 경우에 따라 분기 처리를 하는 것이 메모리도 좀더 적게 차지하고 구현도 편리하다 풀이 코드 처음 맞은 코드 조금더 최적화한 코드
-
[BOJ] 14502. 연구소 (JavaScript)Study/OnlineJudges 2021. 3. 10. 14:21
문제 url: www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 회고 처음 (대충) 봤을때 바이러스 확산으로 공간을 채우는 과정이 있기 때문에 BFS로 풀면 될 것 같았다 그런데 벽 3개를 무조건 세워야 한다는 조건을 보고 DP로 풀어야 하는 건가 싶었다 DP로 풀기에는 점화식을 찾아내기가 너무 어려울 것 같았다 그냥 일단 벽 3개를 brute force로 해보고 최적화를 해보자는 생각으로 구현했는데 그냥 이렇게 하는게 맞았다.. 풀이 과정 벽 3개를 세워야 하기 때문에 ..
-
[BOJ_10871/Java&C] lv3. X보다 작은 수Study/OnlineJudges 2020. 2. 18. 00:27
[BOJ_10871/Java&C] lv3. X보다 작은 수 Java로는 바로 풀었는데 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String input1 = br.readLine(); String input2 = br.readLine(); String[] cons = input1.split(" "); Strin..
-
[BOJ_15552/JAVA] lv3. 빠른 A+BStudy/OnlineJudges 2020. 2. 17. 21:32
[BOJ_15552/JAVA] lv3. 빠른 A+B import java.io.*; public class Main { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int num = Integer.parseInt(br.readLine()); for (int i = 0; i < num; i++) { String line = br.readLine(); String[] nums = line.split(" "..
-
[BOJ/Java] level2. if 연습 5문제Study/OnlineJudges 2020. 1. 23. 22:03
[BOJ/Java] level2. if 연습 5문제 https://github.com/ezerwi/BOJ.lv2.IF/tree/master/src/com/wjh ezerwi/BOJ.lv2.IF BOJ level2 if. Contribute to ezerwi/BOJ.lv2.IF development by creating an account on GitHub. github.com 4번_ 예외를 잘 생각하자ㅋㅋ 00시 && 45분 이전일 때에 대한 조건 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner x = new Scanner(System.in); int h = x.nextInt(); i..
-
[LV1. SQL] SELECT 문제들Study/OnlineJudges 2020. 1. 15. 23:22
SQL은 할 수 있는 작업이 한정적이고 문법도 편해서 몇 개만 알면 기본적인 건 금방 되는 듯 한두 개 해보려다가 lv1. select 문제들은 금방 다해버렸다.. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 // 최대값 구하기 SELECT MAX(DATETIME) FROM ANIMAL_INS; // 모든 data 조회 SELECT * from ANIMAL_INS order by ANIMAL_ID; // 역순 정렬 SELECT name, datetime from ANIMAL_INS order by animal_id desc; // 아픈 동물 찾기 SEL..
-
[Java] level1. 2588. 곱셈Study/OnlineJudges 2020. 1. 15. 22:21
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner x = new Scanner(System.in); String a = x.next(); String b = x.next(); String[] wordsB = b.split(""); for(int i = 1; i< wordsB.length+1 ; i++){ System.out.println(Integer.parseInt(a) * Integer.parseInt(wordsB[wordsB.length-i])); } System.out.print(Integer.parseInt(a) * Integer.parseInt(b)); } } 아오 이 간단한 걸 Inte..