일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- katalon
- 홈택스 해외주식 양도세
- katalon 사용법
- javascript 자동완성
- 피보나치 예제
- CSTS 폭포수 모델
- 피보나치함수 예제
- 최대공약수 예제
- 국세청 해외주식 양도세 신고방식
- 주식 양도세 신고방법
- 해외증권 양도세 한국투자증권
- Katalon Recorder 사용법
- oracle group by
- katalon 비교
- katalon 자동화
- katalon xpath
- 피보나치함수
- bfs 미로탐색 java
- 테스트 자동화
- js 자동완성
- 한국투자증권 해외주식 양도세
- 톰캣 실시간 로그
- git 연동
- 한국투자증권 양도세 신고
- 해외주식 양도세 신고
- recursion example
- 재귀 예제
- 재귀함수 예제
- tomcat log
- java.sql.SQLSyntaxErrorException
- Today
- Total
목록알고리즘 (87)
엄지월드
문제설명간단한 피보나치 수열 문제라고 생각해서 DP로 풀어서 냈다. 하지만 바로 틀렸다고 뜨길레 범위를 보니깐 10,000까지의 범위였다.10,000까지의 범위는 long도 커버할 수 없기 때문에 BigDecimal을 활용해서 처리하였더니 성공했다. 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.math.BigDecimal;public class Main { public static void main(String[] args) throws IOExc..
문제설명실수했던 부분은 한 줄당 2칸이 있으면 해당 줄은 누울 자리가 가능한 것으로 인지하고 다음 줄로 넘어갔었는데, X로 구분되어 있으면 한 줄에서 2번 누울 수도 있다는 것을 알게되었다. 무슨 말이냐면 아래 그림과 같이 X..X..X인 경우 2번 누울 수 있다는 것이다. 도움이 되도록 아래에 반례를 함께 첨부한다. 반례input:7X..X..X..............X..X..X..............X..X..Xanswer:10 10input:1.answer:0 0input:5..X....X..XXXXX..X....X..answer:8 8 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOExceptio..
문제설명값들을 모두 데리고 다니기 위해서 model을 활용하였고, 정렬은 Comparable을 활용해서 Collections.sort 시 기준을 정해준다. 정렬 기준은 year -> month -> day 순으로 정해주었다. 코드<pre id="code_1713963620685" class="java" data-ke-language="java" data-ke-ty..
문제 설명 Collections을 통해서 간단히 풀 수 있는 문제였다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRea..
문제 방법 어려운 문제라고 생각하고, 어떻게 접근해야 하나 싶었다. 하지만 푸는 법을 보니 어렵지 않은 문제였다. 간단히 말하면 주어진 범위에 대해서 모두 1이나 true로 만들어서 색칠해주고, 전체 배열을 돌면서 1이나 true인 부분을 더해주면 되는 문제였다. 실수했던 부분은 아래와 같이 x~y까지 for문을 돌 때에
문제 방법 정답률이 70%여서 너무 쉬운 문제인 줄 알았지만, 약간의 생각이 필요한 문제였다. score 값과 idx 값을 함께 다루기 위해서 People이라는 Model을 사용했다. 그러고 나서 우선순위큐로 풀면 쉽게 풀 수 있을 것 같아서 사용하였는데, 기본적으로 우선순위큐를 poll할 때에는 작은 값부터 빼내기 때문에 처음부터 넣을때 reverse해서 넣도록 처리했다. 조금 헷갈렸던 부분은 idx는 큰 값이 있는 위치인 줄 알고 idx를 따로 저장했었다가, 알고 보니 정답은 오름차순으로 출력하면 되어서 동일하게 queue2로 우선순위큐로 선언해서 사용했다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io...
문제 방법 대부분 replace를 사용해서 풀고 있어서 동일하게 진행했다. 단, 염려했던 부분은 어떤 문자로 replaceAll 할 것인가? 였고 아무것이나 문자로 replace하면 꼬일 수 있을것 같아서 고민했지만 다행히 문제 없이 진행되었다. replaceAll 후에 첫번째 인덱스부터 마지막 인덱스까지 돌면서 내가 만든 문자의 갯수를 셌다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { // 1543 public static ..
문제 방법 정답률이 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..