본문 바로가기

전체 글239

[백준 *Java] - 외판원 순회2(10971) 외판원 순회2 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 문제 외판원 순회 문제는 영어로 Traveling Salesman problem (TSP) 라고 불리는 문제로 computer science 분야에서 가장 중요하게 취급되는 문제 중 하나이다. 여러 가지 변종 문제가 있으나, 여기서는 가장 일반적인 형태의 문제를 살펴보자. 1번부터 N번까지 번호가 매겨져 있는 도시들이 있고, 도시들 사이에는 길이 있다. (길이 없을 수도 있다) 이제 한 외판원이 어느 한 .. 2022. 4. 8.
[백준 *Java] - 로또(6603) 로또 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34],.. 2022. 4. 8.
[백준 *Java] - 차이를 최대로(10819) 차이를 최대로 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 문제 N개의 정수로 이루어진 배열 A가 주어진다. 이때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성하시오. |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| 입력 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. 출력 첫째 줄에 배열에 들어있는 수의.. 2022. 4. 8.
Java에서 Null을 다루는 방법 (NullPointerException) 자바의 null 참조는? 의미가 모호하다. 초기화 되지 않은 상태 정의되지 않은 상태 값이 없는 상태 모든 상태의 기본 값 모든 참조는 null 일수 있다. 소프트웨어 결함 통계 Native Crash 는 Java가 아닌 부분에서 발생한 에러를 뜻합니다. 실제로, Native Crash 내에도 NullPointer 가 존재할 것이기 때문에, 실제 분석된 통계보다 더 많은 것을 위 그림으로 알 수 있습니다. Java 에서 null을 다루는 방법은 NullPointerException라는 에러가 발생하지 않도록 코드드를 작성하는겁니다. 우선 null 이라는 개념은 언제 누구에 의해 만들어졌을까요? null 참조는 1965년 Tony Hoare 라는 영국의 컴퓨터 과학자에 의해서 처음 고안되었습니다. 당시 .. 2022. 4. 7.
버퍼(Buffer) 와 캐시(Cache) 캐시(Cache) 캐시는 속도가 빠른 장치(CPU)와 느린 장치(메인 메모리) 사이에서 속도 차이에 따른 병목 현상을 줄이기 위한 범용 메모리를 뜻합니다. 즉, 어떤 시스템 내에서 데이터의 집중적인 사용으로 인해 전체 시스템에 절대적인 영향을 미치는 부분의 사용 빈도가 늘어나 그 부분의 성능이 저하되어 전체 시스템이 마비되는 현상을 줄이기 위한 것압니다. 캐시는 자주 사용하는 데이터나 값을 복사해 놓는 임시 저장소라고 생각할 수 있습니다. 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 더 오래 걸리는 경우 또는 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용합니다. 캐시는 저장 공간이 작고 비용이 비싸지만, 빠른 성능을 제공합니다. 보통 L1, L2, L3 캐시로 나뉘어지는데, CPU에 가.. 2022. 4. 6.
[백준 *Java] - 다음 순열 (10972) 다음 순열 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 👇 문제보기 더보기 문제 1부터 N까지의 수로 이루어진 순열이 있다. 이때, 사전순으로 다음에 오는 순열을 구하는 프로그램을 작성하시오. 사전 순으로 가장 앞서는 순열은 오름차순으로 이루어진 순열이고, 가장 마지막에 오는 순열은 내림차순으로 이루어진 순열이다. N = 3인 경우에 사전순으로 순열을 나열하면 다음과 같다. 1, 2, 3 1, 3, 2 2, 1, 3 2, 3, 1 3, 1, 2 3, 2, 1 입력 첫째 줄에 N(1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄에 순열이 주어진다. 출력 첫째 줄에 입력.. 2022. 4. 6.