일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- oracle group by
- Katalon Recorder 사용법
- CSTS 폭포수 모델
- katalon 사용법
- 재귀 예제
- katalon
- 홈택스 해외주식 양도세
- 해외주식 양도세 신고
- javascript 자동완성
- 한국투자증권 해외주식 양도세
- katalon 비교
- 국세청 해외주식 양도세 신고방식
- git 연동
- 해외증권 양도세 한국투자증권
- 재귀함수 예제
- 피보나치함수
- java.sql.SQLSyntaxErrorException
- 피보나치 예제
- 주식 양도세 신고방법
- katalon xpath
- tomcat log
- katalon 자동화
- 한국투자증권 양도세 신고
- 톰캣 실시간 로그
- recursion example
- bfs 미로탐색 java
- js 자동완성
- 테스트 자동화
- 최대공약수 예제
- 피보나치함수 예제
- Today
- Total
목록알고리즘 (50)
엄지월드
문제 접근 - 복잡해보이지만, 실질적으로는 0으로 split해서 나누었을 때에 나눠지는 숫자들이 몇개 있는지 출력하는 문제이다. 헷갈렸던 점 - 1번 문제에서 시간초과가 나서 보니깐, 소수를 구할 때 소수 m만큼 돌 필요 없이, m의 거듭제곱근까지만 돌면 된다고 한다. 그래서 Math.sqrt(m)까지만 돌아주었더니 해결되었다. - 그리고 for(int i=3; i
헷갈렸던 점 - 정확성은 맞는데, 효율성에서 시간 초과가 나서 로직 변경이 필요함 - rotate나 shiftRow가 연속으로 있을 때에 +n번을 처리해주면 될 것 같은데, 로직 구현이 까다로워보인다. package Programmers; public class PGM_118670 { public static void main(String[] args) { int[][] rc = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; String[] operations = {"Rotate", "ShiftRow"}; solution(rc, operations); rc = new int[][]{ {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; operations..
헷갈렸던 점 - 크게 어렵진 않았음. 넣고 빼는 것을 반복했을 때에 예외가 있을줄 알았는데 풀렸음 import java.util.*; class Solution { public static int solution(int[] queue1, int[] queue2) { int answer = -2; Queue q1 = new LinkedList(); Queue q2 = new LinkedList(); long totalQ1 = 0; long totalQ2 = 0; // 큐에 데이터 넣기 for(int i=0; i totalQ1){ q2Num = q2.poll(); q1.add(q2Num); totalQ1 += q2Num; cnt++; }else if(sum/2 < totalQ1){ q1Num = q1.pol..
헷갈렸던 점 - 정렬되지 않은 배열이라는 조건을 인지하지 못하고 풀고 있었다. 문제를 자세히 보자 - lostList를 운영하면서 중복으로 잃어버린자 == 가져온자를 계산하지 않고, 이외에 친구들도 매끄럽게 처리할 수 있었다. public static int solution(int n, int[] lost, int[] reserve) { Arrays.sort(lost); int answer = 0; int[] arr = new int[n+2]; // 여분이 있는 친구들은 1로 표시 for(int i=0; i
문제 해석 - 주어진 조건들에 맞게 계속 필터해주면 된다. 헷갈렸던 점 - 어려운 문제는 아닌데, 조건에 맞게 필터해주는게 까다로웠다. - if(s.length() > 0 && s.charAt(s.length()-1) == '.') 에서 ""인 경우가 있어서 에러가 나가지고 s.length > 0을 추가해주었다. 소스 코드 import java.util.*; public class 72410 { public static void main(String[] args) { // solution("...!@BaT#*..y.abcdefghijklm"); // solution("z-+.^."); solution("=.="); solution("123_.def"); solution("abcdefghijklmn.p")..
문제 해석 - 진법으로 바꿔서 계산을 하는 문제이다. 헷갈렸던 점 - 진법으로 어떻게 하면 쉽게 바꿀 수 있을까? 바로 생각이 나지 않아서 시간이 소요되었다. 그래서 진법 변환 방법을 첨부해둔다. - StringBuffer에서 insert를 사용하면 앞에서부터 계속 문자를 추가할 수 있다. 전체 코드 import java.util.Arrays; import java.util.HashSet; import java.util.Stack; public class Main { public static void main(String[] args) { solution(18); solution(45); solution(125); solution(1); solution(100000000); } public static ..
문제 해석 - 9 -> 5 -> 3 -> 6 -> 12의 노드로 가면 가장 지름이 길다. 헷갈렸던 점 - 트리 구성을 오랫만에 하니 헷갈렸었다. n크기만큼 배열을 만들고, List로 구성해주었다. - DFS가 이상하게 머리에서 안굴러가서 애먹었다. for문 구성 시 애먹음. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class test01 { public static void main(String[] args) ..
문제 해석 - 4미만이면 왼쪽 문자에 숫자를 더해주고, 4초과이면 오른쪽 문자에 숫자를 더해준다. - "AN"일 때에 5이므로 "약간동의"이고 N에 1을 더해준다. - "CF"일 때에 3이므로 "약간 비동의"이고 C에 1을 더해준다. - "MJ"일 때에 2이므로 "비동의"이고 M에 2를 더해준다. - "RT"일 때에 7이므로 "매우동의"이고 T에 3을 더해준다. 디버깅을 돌려보면 아래 그림과 같다. - 이렇게 쭉 문자를 더해주었을 때에 아래 그림 지표에 맞게 큰 숫자에 해당하는 문자를 출력해준다. 만약에 둘 다 같은 문자이면 왼쪽 문자를 출력해준다. 헷갈렸던 점 - 1,2,3은 3점,2점,1점을 더해주고 5,6,7은 1점,2점,3점을 더해주는 식을 세우려고 어렵진 않았지만 약간 생각을 했다. - 로직을 ..
문제 해석 1. Enter uid1234 Muzi가 있으면 "Muzi님이 들어왔습니다."를 result 메시지에 저장해준다. 2. Leave uid1234가 있으면 "Muzi님이 나갔습니다."를 result 메시지에 저장해준다. 3. Change uid1234 Prodo가 있으면 reuslt 메시지에 있던 Muzi를 모두 Prodo로 바꿔준다. Ex "Muzi님이 들어왔습니다." -----> "Prodo님이 들어왔습니다." 즉, 채팅 로그가 있을 때에 닉네임을 변경하게 되면 이전에 채팅 로그들에 있던 닉네임까지 모두 변경이 된다. 문제 풀이 1. uidToName이라는 HashMap을 운영하여 주어진 record에서 uid와 name을 모두 저장해준다. if(st.hasMoreElements()) { n..
문제 접근 방법 1. mapCountDFS를 통해 빙산이 두 덩어리 이상으로 되어 있는지 확인을 진행한다. 2. globalWarmingBFS를 통해 빙산을 녹여주는 작업을 진행한다. 헷갈렸던 점 - 빙산이 녹으면서 한번에 모두 0이 되어 덩어리가 0이 되는 경우를 잘못 처리해줬었다. 그래서 녹으면서 한번에 모두 0이 되면 result = 0; 으로 다시 초기화를 진행해주었다. int result = 0; while(true){ int mapCount = countMapDFS(); if(mapCount == 0){ // 모두 녹아 있을 때에 처리 result = 0; break; } ... ... } - 6%에서 계속 틀렸습니다.가 떠서 질문 게시판에 있는 반례를 모두 적용해보았으나, 정상 작동하였다. ..