일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- katalon xpath
- 톰캣 실시간 로그
- 홈택스 해외주식 양도세
- 재귀함수 예제
- java.sql.SQLSyntaxErrorException
- recursion example
- katalon 자동화
- 해외주식 양도세 신고
- 최대공약수 예제
- 피보나치 예제
- 한국투자증권 양도세 신고
- 피보나치함수 예제
- katalon 비교
- katalon
- katalon 사용법
- oracle group by
- bfs 미로탐색 java
- javascript 자동완성
- 한국투자증권 해외주식 양도세
- 재귀 예제
- 해외증권 양도세 한국투자증권
- Katalon Recorder 사용법
- js 자동완성
- 주식 양도세 신고방법
- 테스트 자동화
- tomcat log
- git 연동
- CSTS 폭포수 모델
- 피보나치함수
- 국세청 해외주식 양도세 신고방식
- Today
- Total
목록2024/07 (14)
엄지월드
설명배낭 문제처럼 주어진 값들을 최소로 넣는 방법이라 생각했는데, 순서대로 넣는 문제였다.그래서 처음에 박스에 담은 후 다음 값을 넣을 수 없으면 새로운 박스를 새로 꺼내야 한다.해당 부분은 for문의 if문을 통해서 처리했다. boxCnt 하는 부분을 어디에 배치할 것인지 헷갈렸었다.박스를 꺼내자마자 boxCnt를 늘려주는 방식으로 처리했다. 만약 박스 크기보다 큰 짐이 있으면 새로운 박스를 꺼내도 동일하기 때문에 break 처리하였다. 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamW..
설명1. 먼저, 첫줄에 얼마나 문자가 있을지 문제에서 나와있지 않아서 st.countTokens()를 통해서 갯수를 구함.2. 첫줄만큼 for문을 돈다.3. for문을 돌면서 입력 받은 문자를 reverse()해서 바로 list에 넣는다. 3. 두번째 줄부터 while문을 통해서 n이 충족될 때까지 입력 받고, reverse()해서 바로 list에 넣는다.4. list를 정렬해서 출력한다. 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Array..
설명입력을 받을 때 끝내는 조건에 대해서 알지 못해서 조금 삽질했다.그래서 br.readLine() 시에 null이거나 ""이면 끝내도록 했다. 문제 풀이는 아래와 같이 접근했다. 1. s 문자 1개를 집어서 t 문자를 순회2. 없으면 No3. 있으면 s 문자를 또 1개 집어서 다음 idx부터(searchIdx+1) t문자를 순회한다. 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.StringTokenizer;public class Main {..
설명단순히 sort로도 풀 수 있는 문제이지만, 다른 방식으로 좀 더 빠르게 풀어보고 싶었다.그래서 음수와 양수 각각 배열을 선언해주고, 해당 배열에 값을 추가한 후 1번 인덱스부터 돌면서 처리했다. 결국 sort보다 빠르게 처리할 수 있었다. 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.StringTokenizer;public class Main { // 16212 public static void main(String[] args..
설명입력 받은 후 문자를 char로 생각하고 모두 map에 넣어서 계산하도록 했다. 마지막에 int인 d를 map.getOrDefault(d, 0)하게되면 d는 int이고 map의 key는 Character여서 인식이 안되었다. 그래서 (char)d도 해보았지만 Character '1'이 처리되는게 아니라 '\u0001' 1으로 표시가 되는 문제가 있었다.아래와 같이 forDigit을 한 후에 10진수로 바꿔주면 원하는 대로 작동을 하게 되어서 해결할 수 있었다. char c = Character.forDigit(d, 10); 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java..
설명replace 할 때에 S.replace("pi", "")와 같이 replace 되는 문자를 공백으로 처리했었는데, 틀리다고 나왔었다.이유를 보니 kpia와 같이 문자가 있을 때에 pi가 replace되면서 ka 문자가 되었기 때문이다.이렇게 되면 모두 replace가 되어 공백이라 YES가 나오게 된다. 정답은 NO가 나와야 한다. 그래서 *와 같이 임의의 문자로 치환한 후에 마지막에 "" 공백으로 처리했다. 각각 replace하고 싶지 않으면 replaceAll("pi|ka|chu", "")와 같이 한번에 처리해도 된다. 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import jav..
설명PriorityQueue를 이용해서 높은 점수부터 출력하도록 했다. class를 이용해서 높은 점수를 받은 사람의 나라와 번호를 저장했다. 그리고 2번 이상 메달을 받을 수 없기 때문에 나라별로 중복을 어떻게 처리할까 싶어서 countryMap을 추가로 선언해서 메달을 받을 때마다 value 값을 더해주고, 2번을 받으면 poll만 하고 다시 while 문을 돌도록 처리했다. 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.HashMap;imp..
설명문자를 contains로 비교하면 엄청 간단한 문제였을듯하지만, 문자를 원형으로 봐야 한다는 제약이 있었다. 그래서 문자를 뗏다 붙였다가 하는 방법을 고민하던 중, StringBuilder를 써서 delete하고 append하면 어떨까 생각이 들었다. append는 속도가 나쁘지 않을것 같은데, delete는 어떤가해서 찾아보니, 속도가 나쁘지 않았기에 활용해서 문제를 풀 수 있었다. [deleteCharAt]deleteCharAt(int index) 메서드는 StringBuilder에서 특정 인덱스의 문자를 제거하는 방법으로, 일반적으로 성능이 매우 빠릅니다. 성능 관련 사항: 시간 복잡도: StringBuilder의 deleteCharAt 메서드는 O(n) 시간 복잡도를 가집니다. 이는 제거할 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/M0L8y/btsIu9s79w7/Q36pjFKi3AFlW61JySB6m0/img.png)
문제설명dfs와 같이 재귀를 활용해서 전체를 탐색하도록 푸는 아이디어로 접근했다.첫번째 간과했던 점은 같은 점수면 index가 높은 값을 구해야 했고,두번째 간과했던 점은 재귀를 돌 때에 left, center, right와 같이 3개로 나누어서 구현했는데right가 4까지 도달하면 center를 움직이고 left를 움직였다.하지만 이렇게 되면 예제 케이스를 통과하지 못한다. 왜냐하면 5 5 9를 선택해야 하는데 left보다 center를 먼저 움직이면 5 5 9를 선택하지 못하기 때문이다. 그래서 right 다음에 left를 움직이고 마지막에야 center를 움직여서 처리했다. 코드import java.io.BufferedReader;import java.io.BufferedWriter;import j..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dwcsJB/btsIsytS5tZ/i2d9PLEb2voDQDIglVLmL0/img.png)
문제설명너무 단순하게 풀면 시간초과가 나올 것 같아서 시도하지 못하다가 방법이 떠오르지 않아서 생각하는대로 구현해보았다. 생각한 방법은 1부터 주어진 숫자까지 모두 구하는 방법이었다. 그래서 for문을 통해서 시작하는 숫자를 i로 두고, 재귀를 통해서 끝까지 구해주었다. 결과에 배열을 출력해야 하기 때문에 list 객체를 넘겨서 조건이 맞으면 계속 add를 해주었고 size가 가장 큰 배열인지 체크해주었다. 느릴줄 알았는데 속도는 생각보다 빠르게 156ms로 나왔다.더 효율적인 방법이 있을까 싶어서 검색해보았지만 딱히 찾지 못했다.코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import j..