일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재귀 예제
- javascript 자동완성
- CSTS 폭포수 모델
- 국세청 해외주식 양도세 신고방식
- 한국투자증권 해외주식 양도세
- katalon
- 피보나치 예제
- java.sql.SQLSyntaxErrorException
- 피보나치함수
- recursion example
- katalon 자동화
- 홈택스 해외주식 양도세
- git 연동
- katalon 비교
- Katalon Recorder 사용법
- bfs 미로탐색 java
- tomcat log
- 해외증권 양도세 한국투자증권
- 한국투자증권 양도세 신고
- katalon xpath
- 재귀함수 예제
- katalon 사용법
- 테스트 자동화
- 피보나치함수 예제
- 주식 양도세 신고방법
- 최대공약수 예제
- oracle group by
- 톰캣 실시간 로그
- 해외주식 양도세 신고
- js 자동완성
- Today
- Total
목록알고리즘 (50)
엄지월드
문제 방법 정답률이 30%여서 시간초과 걱정을 했다. 그래서 빠른 방법을 고민했고, O(N) 속도인 Set을 쓰고 Set에서도 Integer가 아닌 String으로 바로 비교했다. Set와 Set간의 속도 차이가 있을까? 궁금해서 gpt에게 물어봤지만 차이가 없다고 답변이 왔다. 그래서 set.add(Integer.parseInt(st.nextToken)); 부분에서 Integer.parseInt라도 줄여보기 위해 Set을 사용했다. 그리고 나서 Set의 속도가 궁금해서 Integer로 바꾸고 Integer.parseInt(st.nextToken)) 으로 바꿔서 해보았는데, 아래와 같이 540ms과 604ms가 나왔다. 결론적으로는 별 차이 없었다. 코드 import java.io.BufferedRead..
문제 방법 큐의 작동을 구현하는 문제이지만, 가장 나중에 넣은 값도 알아야 하고 가장 먼저 넣은 값도 알아야 해서 Deque로 풀어야 편하게 풀 수 있다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Deque; import java.util.LinkedList; public class Main { // 10845 public static void main(String[] args) throws IOException { Buffere..
문제 처음에는 1씩 더해서 해결하려 했지만, 시간초과가 발생했다. 수학적 지식이 있어야 풀 수 있는 문제였다. 방법 유클리드 호제법을 사용하면 구하면 된다. 먼저, 최대공약수를 구하고 두 수의 곱 / 최대공약수를 하면 최소공배수가 되게 된다. x * y / gcd 예로 들면 두 수 28과 18이 있으면 28 % 18 = 10 18 % 10 = 8 10 % 8 = 2 8 % 2 = 0 최대공약수는 2이다. 28과 18을 계속 나누는 과정을 좀 더 자세히 말해보면 큰 수 % 작은수 = 결과가 나오게 되는데, 결과가 0이 아니게 되면 작은수와 결과를 다시 % 연산을 진행한다. 계속해서 연산을 진행하다가 % 연산 시 0이 나오면 작은 수가 최대공약수(gcd)가 된다. 코드 import java.io.*; imp..
문제 방법 배열에 값을 모두 넣어 놓고, 어떻게 하면 주어진 i,j에서부터 x,y까지 모두 더할 수 있을지 고민하였다. 헷갈리지 않게 fromX, toX 이런식으로 명칭을 바꿔서 진행하였다. for문을 통해서 시작점부터 종료점까지 순회하면 될 것 이라는 생각이 들었고, 그러면 어떻게 for문을 구성할지 머리를 굴린 후 구현하였다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.S..
문제 방법 입력 받은 값을 List에 모두 넣고, sort를 진행한다. 그리고 나서 K번째 값을 출력해준다. 단, K의 시작하는 기준이 0과 1로 다르므로 -1을 해준다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.StringTokenizer; // 11004 public class Main { /* 5 2 4 1 2 3 5 */ public static void main(String[] args) thr..
문제 방법 Collections.sort를 이용해서 정렬을 진행하였다. 정렬을 진행할 시 조건을 정해주기 위해 implements Comparable을 활용하였다. Comparable의 조건은 y가 같을 때에 원래 x 값이 비교하려는 x값과 작을 수록 앞에 위치하도록 하였다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.StringTokenizer; // 11651 public class Main { pub..
문제 방법 set을 통해서 넣고, 빼고를 반복하였다. 내림차순 정렬은 Collections.reversOrder을 활용하였다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.StringTokenizer; // 7785 public class test { public static void main(String[] args) t..
반례 11 10 -> 10이 나와야 함 i = 2 cnt = 1 K = 10 idx = 2 n = 1 i = 4 cnt = 2 K = 10 idx = 2 n = 2 i = 6 cnt = 3 K = 10 idx = 2 n = 3 i = 8 cnt = 4 K = 10 idx = 2 n = 4 i = 10 cnt = 5 K = 10 idx = 2 n = 5 i = 3 cnt = 6 K = 10 idx = 3 n = 1 i = 9 cnt = 7 K = 10 idx = 3 n = 3 i = 5 cnt = 8 K = 10 idx = 5 n = 1 i = 7 cnt = 9 K = 10 idx = 7 n = 1 i = 11 cnt = 10 K = 10 idx = 11 n = 1 코드 package Baekjoon; i..
SELECT에서 무슨 컬럼이 나올지 정하기 NAME, count(*) as COUNT WHERE에서 NAME IS NOT NULL을 통해 NULL 데이터 제거 GROUP BY NAME으로 동일한 이름 묶기 HAVING COUNT에서 count 1 초과인 값들만 가져오기 SELECT NAME, count(*) as COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME having count(*) > 1 ORDER BY NAME ASC
- SELECT에서 to_char을 이용해서 시간 포맷 정하기 - WHERE에서 특정 시간대만 나오도록 지정하기, HH24MI와 시간을 입력하여 비교( 1959 >= to_char(DATETIME, 'HH24MI') ) - GROUP BY를 통해서 같은 DATETIME을 묶기 - ORDER BY를 통해서 오름차순 정렬 SELECT to_char(DATETIME,'HH24') AS HOUR, count(*) FROM ANIMAL_OUTS WHERE 0900 = to_char(DATETIME, 'HH24MI') GROUP BY to_char(DATETIME,'HH24') ORDER BY HOUR ASC