Java 73

Apache Tomcat 8.5.3 설치

https://archive.apache.org/dist/tomcat/ Index of /dist/tomcat archive.apache.org 참고자료 : https://byounghee.tistory.com/224 Windows(윈도우) 에서 Tomcat 설치 및 실행 방법Windows(윈도우) 에서 Tomcat 설치 및 실행 방법 이번 게시글에서는 파일 업로드 취약점 실습 시 필요한 환경 구축을 진행할 예정이며, Windows(윈도우)에서 Tomcat 설치 및 실행 방법에 대해서 알아본다.byounghee.tistory.com

기타 2024.11.11

[JAVA]BOJ 9934, 완전 이진 트리

inoder로 들어온 완전이진트리를 트리의 모습.. 음 레벨 순회로 각 레벨마다 줄바꿈해서 출력하면 된다.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 BOJ9934 { public static void getTree(int[] arr, int start, int end, int level, List> levels){ int middle; if(start > levels = new ArrayLi..

코딩가딩가 2024.09.22

[JAVA]BOJ 1967, 트리의 지름

어렵다.. 골드였구나 1. 트리를 만든다.2. dfs를 두 번 진행한다. 이렇게만 보면 간단해보이는데.. 구현하는게 어려웠다. 1. 트리를 만든다.ArrayList[] tree; // 선언// 트리 초기화tree = new ArrayList[n + 1];for(i=0;i();// 트리 만들기 -> 간선개수는 노드개수 -1for(i=1;i 이번 문제는 ArrayList로 트리를 구현한다. 트리를 초기화할때 i=1부터 했더니 자꾸 NullPointer가 발생해서 i=0으로 바꿨다. 바꿨더니 에러가 안나고 정답을 맞췄다.ArrayList에 tree[부모]에  '부모, 자식, 간선가중치'를 저장한다. 그리고 부모-자식이 연결됐다는건 자식-부모도 연결되어있다는 뜻이므로 tree[자식]에 '자식, 부모, 간선가중치..

코딩가딩가 2024.09.22

[JAVA]BOJ 1991, 트리 순회

트리를 구현하고 순회하는 단순한 문제이다. 트리를 구현할때.. 클래스가 3개 필요하다. 메인, node, binaryTree 1. node 클래스public class Node { char data; Node left; Node right; Node(char data){ this.data = data; }}단순하게 노드를 구현한다. 자기자신과 왼쪽노드, 오른쪽노드를 가진다.  2. BinaryTree 클래스import java.util.HashMap;public class BinaryTree { private Node root; // 루트 노드 private HashMap nodes; // 각 노드를 저장하는 맵, 간선 역할 public Binary..

코딩가딩가 2024.09.21

[JAVA]BOJ 11725, 트리의 부모 찾기

트리를 활용한 간단한 문제이다.트리에 대해 짧게 요약하고 넘어가자면 ..트리 : 순환이 없는 그래프트리종류 : 일반트리 이진트리 N-진트리 균형트리 힙.. 등이 있음 순회방법 : preorder, inorder, postorder, levelorer 등이 있음 dfs, bfs : 그래프와 트리에 사용할 수 있는 탐색 알고리즘          - dfs : preorder, inorder, postorder 방식으로 탐색 가능          - bfs : leveloder와 같음자바에서 트리를 구현할때는 리스트를 이용한다. 1. 리스트를 이용해 빈 노드를 가진 트리를 만든다.2. 노드에 간선을 추가한다.3. DFS 탐색(preorder)으로 부모를 찾는다.4. 부모를 출력한다. 1. 메인 -> 2. 노드..

코딩가딩가 2024.09.08

[JAVA]BOJ 15657, N과 M (8)

중복가능, 비내림차순 = 오름차순 --> 중복 조합이다. 1. 메인 --> 입력받고 오름차순 정렬함2. printSequence 함수public static void printSequence(int[] arr, int[] result, int N, int M, int toPick){ int i, lastIdx, smallest; // base case -> 다 뽑았을때 if (toPick == 0){ for(i=0;ilastIdx : 결과 배열(result)의 인덱스 번호smallest : 오름차순 정렬을 위해 사용한다. 단, 중복선택이 가능해야 하므로 최솟값을 마지막에 선택한 값 그 자체로 설정한다. 예를 들면, 마지막으로 저장한 수가 'result[0] = 1'이면, 다음..

코딩가딩가 2024.09.06

[JAVA]BOJ 15656, N과 M (7)

오름차순이어야 한다는 조건이 없으니 이건 중복 순열 문제이다. 그냥 순열(백준 15654번)과 비슷한데, 중복체크하는 것만 빼면 된다. 1. 메인 --> 입력받고 오름차순 정렬함2. printSequence 함수public static void printSequence(int[] arr, int[] result, int N, int M, int toPick, StringBuilder sb){ int i, lastIdx; // base case -> 다 뽑았을때 if (toPick == 0){ for(i=0;ilastIdx : 결과 배열(result)의 인덱스 번호오름차순 정렬이 필요하지 않으니 smallest는 정의하지 않았다.(i는 0부터 시작..)base case는 앞선 ..

코딩가딩가 2024.09.06

[JAVA]BOJ 15655, N과 M (6)

이 문제는 조합이다. 조합은 순서에 상관없이 N개에서 M개를 선택하는 수열이다. 1 7과 7 1은 같은 수열이다. 1. 메인 --> 입력받고 오름차순 정렬함2. printSequence 함수public static void printSequence(int[] arr, int[] result, int N, int M, int toPick){ int i, lastIdx, smallest; // base case -> 다 뽑았을때 if (toPick == 0){ for(i=0;ilastIdx : 결과 배열(result)의 인덱스 번호smallest : 오름차순 정렬을 위해 사용하는데, 지금까지 선택한 수들보다 큰 수들중에 제일 작은 값을 저장한다. 예를 들면 마지막으로 저장한 수가..

코딩가딩가 2024.09.06

[JAVA]BOJ 15654, N과 M (5)

N에서 중복이 되지않게 M개를 고른다. 그리고 예제를 보니 1 7 과 7 1 은 다른 수열로 친다.. 즉 순서 따진다는거고 이는 '순열'을 뜻한다. 순열 문제이다. 순열은 순서를 고려하고 중복을 허용하지 않는 수열이다. 문제를 더 설명할건 없어서 바로 코드 설명으로 넘어가자.. 재귀를 사용했다. 1. 메인public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N, M, i; int[] arr, result; StringTokenizer st; st = new StringTokenizer(b..

코딩가딩가 2024.09.06

[JAVA]BOJ 17298, 오큰수

스택을 이렇게도 쓸 수 있구나 하고 깨달은 문제이다. 문제 자체는 간단해보이는데 시간제한내에 풀려면 스택을 꼭 써야한다. 그리고 출력시에도 주의가 필요하다. 풀기위해 필요한 필드는 입력받는 배열1, 결과값 저장하는 배열2, 빈 스택, 해서 총 3가지가 필요하다.1. 배열1에 입력을 받는다.2. 배열1의 마지막 값부터 스택값과 비교한다.3-1. 스택이 비어있으면 -1을 배열2에 추가한다.3-2. 스택 맨 위 값이 더 크면 오큰수이므로 peek()값을 배열2에 추가한다.3-3. 스택 맨 위 값이 작거나 같으면, 스택 3-1, 3-2의 조건이 될때까지 pop()을 한다. 이렇게 설명하면 어려우니까 한 단계씩 풀어보자. 입력값 : 3 5 2 7 , 굵은 글씨가 스택이다.-                      ..

코딩가딩가 2024.09.01