일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- recursion example
- 테스트 자동화
- katalon
- javascript 자동완성
- CSTS 폭포수 모델
- 국세청 해외주식 양도세 신고방식
- 재귀함수 예제
- bfs 미로탐색 java
- katalon 사용법
- git 연동
- Katalon Recorder 사용법
- 피보나치함수 예제
- 피보나치 예제
- js 자동완성
- 해외증권 양도세 한국투자증권
- java.sql.SQLSyntaxErrorException
- 해외주식 양도세 신고
- 최대공약수 예제
- 재귀 예제
- 톰캣 실시간 로그
- 홈택스 해외주식 양도세
- 주식 양도세 신고방법
- 피보나치함수
- katalon xpath
- 한국투자증권 양도세 신고
- tomcat log
- katalon 자동화
- oracle group by
- katalon 비교
- 한국투자증권 해외주식 양도세
- Today
- Total
목록알고리즘 (50)
엄지월드
접근 방법 불과 사람을 1번씩 움직여주면서 탈출이 가능한지 찾아본다. 불과 사람이 만나면 실패이기 때문에, while문에서 사람보다 불을 먼저 이동해준다. 특이점 visited 배열을 사람과 불을 각각 운영해주려고 했으나, 함께 운영해주어도 문제가 없다. 왜냐하면 어차피 불이 이동한 곳은 사람이 이동하지 못하고, 사람이 이동했던 경로를 불이 이동할 필요는 없기 때문이다. 로직은 맞는 것 같은데 시간초과가 나서 계속 분석해 보니.. for(int k = 0; k < qSize; k++) { 부분에서 for 문안에 Man now = q.poll(); 을 포함했어야 했는데, for 문 위에 Man now = q.poll();이 있어서 계속해서 시간초과가 발생했었다. 이유는 사람의 개수대로 for 문이 돌아야 ..
접근 방법 dx 배열에 이동 경로를 입력 int[] dx = new int[]{-1, 1, 2} BFS 문제와 동일하게 Queue에 값을 넣어서 계속해서 알까기 진행 People class를 운영하여 걸린 시간을 계속해서 더해주었다. -> People class 선언 시, static으로 하지 않으면 에러가 나서 static으로 선언해 주었다. 특이점 기존에 BFS 문제들과 비교했을 때에 좌표가 아닌점이 신선했다. visited를 운영하지 않았더니 시간초과가 발생했다. visited 배열의 크기를 x,y 중에 큰 값으로 했더니, 10 19와 같이 x2후에 -1을 하는 케이스에서 오류가 발생해서 입력 범위의 전체로 늘려주었다. visited = new boolean[1000001]; 원래 continue를..
접근 방법 전체 배열을 탐색하여 BFS 시작 전에, 1이 포함된 위치를 Queue에 모두 넣어준다. (ArrayList arr = new ArrayList();) BFS 탐색 시, 범위를 벗어나지 않거나, 방문하지 않았거나, 0인 부분을 계속해서 탐색해준다. 특이점 기본 BFS는 0(벽)일때 continue를 해주지만, 해당 문제는 num이 여러개 일 수 있기 때문에 다른 num을 침범하지 않기 위해 if(map[nextX][nextY] != 0) continue; 처리해준다. 이동한 부분에서 max 값을 찾기 위해 계속해서 갱신해준다. max = Math.max(max, map[nextX][nextY]); package Baekjoon; import java.io.BufferedReader; impor..
소스 해석 int graph[][] 배열을 만들어주고, 값을 할당 boolean check[] 배열을 만들어주고, 값을 할당 queue를 활용하여 graph를 탐색 시작 1부터 주어진 값까지 순회하기 위해 for 문을 활용하고 for문에서는 방문하지 않았고, 이동 가능한 graph가 있는지 확인을 진행 이동 가능한 graph가 있으면 queue에 값을 넣어주고, visited[]를 true로 처리해줌. package Baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import ..
설명 N x M 배열이 있을 때에 1이 이동 가능한 위치이고, 0이 이동 불가한 위치이다. N,M 위치까지 가는 방법에 대해서 최소한의 경우를 출력해준다. 소스 해석 map에다가 문제에서 주어진 값 0, 1을 저장 특정 부분을 방문했는지 체크하기 위해 visited 배열 운영 queue를 활용해서 시작 위치를 넣어주면서 BFS 시작 for문을 활용해서 이동가능한 상화좌우를 탐색하고, 이동 가능한 부분이 있으면 새로운 queue를 생성해서 계속해서 탐색할 수 있도록 함. 이동이 불가하면 queue에 값을 넣지 않음 모든 queue에 있는 값이 이동이 불가하면 queue에 추가적으로 값을 넣지 않기 때문에 queue가 비어져서 while(탐색)이 종료됨. package Baekjoon; import java..
OSI 7계층에 대해 간략히 설명해주세요 물데, 네,전, 세표응 TCP와 UDP의 차이점과 장단점에 대해서 설명해주세요. TCP는 채팅과 같이 패킷이 유실되면 안되는 곳에 좀 더 적합하고 UDP는 스트리밍과 같이 패킷이 유실되더라도 좀 더 빠르게 데이터가 전송되기 위한 곳에 좀 더 적합하다. 채팅서버-클라이언트간에는 TCP와 UDP중 어떤 프로토콜을 사용하는 것이 좋을지에 대해 가능한 구체적으로 설명해주세요. TCP가 적합하다. 왜냐하면 TCP는 UDP와 다르게 패킷이 손실되는지 체크하기 때문이다. TCP의 3-way-handshake와 4-way-handshake 방식의 차이점에 대해 간략히 설명해주세요 3-way-handshake는 TCP 연결을 위한 통신 과정이고, 4-way-handshake는 T..
그리디 알고리즘이란? 탐욕 알고리즘이라고 불리는 그리디 알고리즘은 현재 상황에서 가장 최선의 선택을 하는 기법이다. 그리디 알고리즘은 빠르지만 최적해를 보장하지는 못하며, 최적해에 가까운 값을 구하는 경우 사용 가능하다고 한다. 만약, 딥러닝에 관심이 있는 사람이라면 딥러닝 알고리즘 개발할 때에 사용된다고 하니 잘 익혀두는게 좋을듯하다. 그러면 어느 상황에서 그리디 알고리즘을 사용해야 할까? 아래 두 가지 조건에 해당하면 적용이 가능하다. 1. 탐욕적 선택 특성(Greedy choice property) - 지금 선택이 다음 선택에 영향을 주지 않는 경우 - 즉, 무슨 말이냐면 아래 그림처럼 B를 선택했을 때에와 C를 선택했을 때에 선택권이 달라지면 안된다. 2. 최적 부분 구조(Optimal subst..
팰린드롬이란? 앞에서부터 읽어도, 뒤에서부터 읽어도 동일한 문자열이다. 예로 들면 ab는 팰린드롬이고, abb는 팰린드롬이 아니고 aba는 팰린드롬이다. 쉬운 문제로 가끔 문제로 출제될 수도 있는데, 알고 있으면 쉽게 풀 수 있기에 공유해 보고자 한다. 기본적인 팰린드롬을 판별하는 방법은 for문을 활용해서 뒤에서부터 앞에까지 읽어왔을 때에 동일하다면 팰린드롬으로 보면 된다. 팰린드롬 문제에서는 기본적으로는 팰린드롬을 구현하기 때문에 메서드로 만들어 놓고 문제를 풀어보면 좋을듯하다. 하단에 팰린드롬을 학습할 수 있는 문제들을 단계별로 모아보았다. 만약 풀이가 궁금해서 들어오신 분들은 바로 해당 문제의 접근 방법과 풀이를 확인해 보면 될 것 같다. 팰린드롬인지 확인하기(브론즈2) https://www.ac..
Tip! 코딩 테스트 시 기존에 제공되는 함수를 직접 구현하는 문제들이 나올 수 있습니다. 아래 예제들을 확인하여 숙지하고 있으시길 바랍니다. 모든 Recursion은 반복문(iteration)으로 변경 가능합니다.또한, 그 역도 성립하게 됩니다. 즉, 모든 반복문(iteration)은 Recursion으로 표현 가능합니다.순환함수는 복잡한 알고리즘을 단순하고 알기쉽게 표현하는 것을 가능하게 합니다.하지만 함수 호출에 따른 오버해드가 있습니다(매개변수 전달, 엑티베이션 프레임 생성 등) public class Recursion_2 {// 1. 문자열의 크기를 구하는 방법.public static int length(String str){if(str.equals(""))return 0;else1 + len..