반응형

분류 전체보기 318

자바 ServletContextListener 정의 및 구현 방법

ServletContextListener 웹 애플리케이션의 컨텍스트의 생명주기 이벤트를 처리하기 위한 인터페이스로 웹 애플리케이션이 시작과 종료 시점에서 특정 클래스의 메서드를 실행할 수 있는 기능을 제공한다. ServletContextListener 생성 방법 어떠한 방법을 사용해도 기본적으로 해당 클래스에 ServletContextListener 를 구현해야 한다. 1. web.xml 이용하는 방법 [MyServletContextListener.java] import javax.servlet.ServletContextEvent; import javax.servlet.ServletContetxtListener; public class MyServletContextListener implements Se..

[백준]JAVA - 2098번: 외판원 순회

https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 🔶 풀이 불특정한 도시 A에서 출발해서 한 바퀴를 돌고 도시 A로 다시 돌아왔을 때 최소 비용을 구하는 문제. 시간 제한이 적기 때문에 dp와 비트마스크를 활용해야함. 비트마스크(Bit Mask) 알고리즘 장점 및 연산자 사용 방법 비트마스크(BitMask)는 이진수를 사용하는 컴퓨터의 연산 방식을 이용하여 정수의 이진수 표현을 자료 구조로 쓰는 기법 ✅ 이진..

[백준]JAVA - 4485번: 녹색 옷 입은 애가 젤다지?

https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 🔶 풀이 오랜만에 나온 다익스트라 문제. 완전 탐색으로 풀려고 했지만 시간 초과가 발생할 것 같아서 다른 방향을 생각해 봄. bfs와 다익스트라 알고리즘을 헷갈려하시는 분들이 있는 것 같은데 큰 차이점은 그래프의 가중치 유무와 dp 활용이다. 두 가지 알고리즘 모두 최단 거리를 찾는 알고리즘이지만 그래프의 가중치가 생기면 다익스트라 알고리즘을 사용하는 것이 좋다. 또한, 그래프의..

이클립스 실행 시 에러 The default workspace is in use or cannot be create, please choose a different on. 해결 방법

이클립스 실행 시에 아래와 같은 에러가 발생할 수 있다. The default workspace '지정한 경로' is in use or cannot be create, please choose a different one. 해결하는 방법은 총 두 가지가 있다. 에러 해결 방법 1. 작업관리자에서 eclipse.exe 프로세스 종료 2. 지정한 workspace의 .metadata 폴더에 .lock 파일 삭제

[백준]JAVA - 9576번: 책 나눠주기

https://www.acmicpc.net/problem/9576 9576번: 책 나눠주기 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 www.acmicpc.net 🔶 풀이 그리드 알고리즘으로 충분히 해결할 수 있는 문제. 1번부터 N번까지의 책을 가지고 있고, a부터 b까지 중 하나의 책을 최대한 많은 학생에게 나눠주면 된다. 중복된 책을 나눠주면 안되기 때문에 book 배열로 나눠줌 여부를 판단해줬다. 문제를 잘 살펴보면 한 가지 예외가 있다. 1 5 4 1 5 // 1번 책을 나눔 2 5 // 2번 책을 나눔 3 4 // 3번 책을 나눔 3 3 위의 예제를..

자바 지역변수, 전역변수, 정적(static) 변수의 차이점 (Java 8 이후의 JVM 구조)

자바에서는 선언 위치에 따라서 크게 지역 변수와 전역 변수 2개로 나눌 수 있다. 전역 변수에는 클래스 변수와 인스턴스 변수가 있다. 1. 지역 변수 (Local Variable) public class Main { public static void main(String[] args) { int localVar = 10; System.out.println(localVar); // 10 } } 메서드 내에서 선언된 변수로 해당 메서드 내에서만 사용이 가능하다. 메서드 호출이 끝나면 소멸되고, 초기화하지 않으면 컴파일 에러가 발생한다. 2. 전역 변수 전역 변수에는 클래스 변수와 인스턴스 변수가 존재한다. [인스턴스 변수] public class Main { public int globalVal; publi..

[백준]JAVA - 19640번: 화장실의 규칙

https://www.acmicpc.net/problem/19640 19640번: 화장실의 규칙 위와 같이 줄을 선 경우를 생각해보자. (x, y) 는 사원의 근무 일수가 x, 화장실이 급한 정도가 y임을 나타낸다. [x, y]는 해당 사원이 데카임을 의미한다. 즉, 위의 그림에서 데카는 3번 사원이다. www.acmicpc.net 🔶 풀이 각 줄에서 맨 앞에 있는 사람끼리 비교해야하는 문제. 1. M개의 줄로 나눠서 WaitLine 배열리스트에 사원들을 입력해준다. ArrayList[] waitLine = new ArrayList[M]; for (int i=0; i

[백준]JAVA - 1976번: 여행 가자

https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 🔶 풀이 유니온-파인드 문제. 1 → 3 으로 가려고할 때, 바로 연결되어있지 않아도 1 → 2 → 3 이 연결되어있다면 갈 수 있다. 즉, 가고자하는 경로가 쭉 이어져있으면 여행이 가능하다는 뜻이다. 유니온-파인드에 대해서 처음 접하신 분들은 아래 링크를 보고 오는 것을 추천한다. 유니온-파인드를 이용한 대표적인 알고리즘을 설명하고있다. 최소 비용 신장 트리(MST), 크루스칼 알고리즘(Krus..

자바 NumberFormatException 발생 원인 및 예외 처리

자바(Java)에서 발생하는 NumberFormatException 예외에 대해서 알아보겠다. ✅ 예외(Exception) ? 오류(Error) ? : 프로그램 실행 중에 예상 가능한 상황에서 발생하는 문제로 예외 처리를 통해 프로그램의 안전성을 유지할 수 있다. 오류는 예상하지 못한 상황에서 발생하는 심각한 문제로 일반적으로 오류가 발생하면 프로그램이 중단된다. 해당 예외는 "숫자로 변환할 수 없는 문자열이 입력된 경우"에 발생한다. 보통 숫자로 변환할 수 없는 문자열이 입력되면 parseInt(), parseLong() 등과 같은 숫자 변환 메서드에서 NumberFormatException 예외를 발생시킨다. NumberFormatException 예외가 발생하는 원인 1. 숫자로 변환할 수 없는 문..

비트마스크(Bit Mask) 알고리즘 장점 및 연산자 사용 방법

비트마스크(BitMask)는 이진수를 사용하는 컴퓨터의 연산 방식을 이용하여 정수의 이진수 표현을 자료 구조로 쓰는 기법 ✅ 이진수 0 또는 1을 이용하므로 하나의 비트(Bit)가 표현할 수 있는 경우는 두 가지이다. 비트마스크 장점 1. 빠른 수행시간 비트마스크 연산은 bit 연산이기 때문에 O(1)에 구현되는 경우가 많다. 2. 짧은 코드 다양한 집합 연산들을 비트연산자로 한 줄로 작성할 수 있다. 3. 적은 메모리 사용량 ★ bit가 5인 경우에 $2^{5}$ 개의 경우를 표현할 수 있다. 하나의 정수로 많은 경우의 수를 표현할 수 있기 때문에 메모리 측면에서 효율적이다. 비트 연산자 연산 연산자 설명 AND & 두 개의 비트가 모두 1인 경우, 1을 반환함 OR | 두 개의 비트 중 하나라도 1인..

알고리즘/이론 2023.04.17
반응형