2024/11 45

체크 예외 재정의

Runnable 인터페이스의 run() 메서드를 구현할 때 InterruptedException 체크 예외를 밖으로 던질 수 없는 이유 체크 예외부모 메서드(상위 타입)가 체크 예외를 던지지 않는 경우, 재정의된 자식 메서드도 체크 예외를 던질 수 없다.자식 메서드는 부모 메서드가 던질 수 있는 체크 예외의 하위 타입만 던질 수 있다.언체크(런타임) 예외예외 처리를 강제하지 않으므로 상관없이 던질 수 있다.자바는 왜 이런 제약을 두는 것일까?부모 클래스의 메서드를 호출하는 클라이언트 코드는 부모 메서드가 던지는 특정 예외만을 처리하도록 작성된다. 자식 클래스가 더 넓은 범위의 예외를 던지면 해당 코드는 모든 예외를 제대로 처리하지 못할 수 있다. 이는 예외 처리의 일관성을 해치고, 예상하지 못한 런타임 ..

운영체제 2024.11.29

되추적 ( Backtracking)

완전탐색 - 브루토포스 (exhaustive/brute-force search)을 개선한 기법이다. 후보해 들을 단계적으로 만들어가는 과정에서 후보해들을 평가한다. 만약 한 후보해가 최종해가 될 수 없다고 판단되면 탐색을 멈추고 다른 후보해를 탐색한다. -> 최적화문제와 결정문제 해결이 가능하다 DFS(Depth First Search) 또는 그와 같은 스타일의 탐색을 총칭한다. 되추적(Backtracking) 이란?-어떤 노드의 유망성을 점검한 후, 유망하지 않다고 판정이 되면 그 노드의 부모 노드로 돌아가서 다음 자식 노드에 대한 탐색을 계속한다.  이렇게 가능성을 보고 가지치기를 하며 가능한 것들을 판단한다.  다음 예시로는 순열 생성 되추적이 있다. 이것의 알고리즘은 다음과 같고 Java로는 다음..

알고리즘 2024.11.26

백준 14500 - Java

내 첫 풀이 : 처음에 모양을 정의하고 그거랑 비교하면서 최대값을 구하는 방식으로 풀었으나 계속 오류가 떳고 해결이 안되어서 구글링을 해보니 다들 DFS와 BackTrack을 썻기에 나도 그거에 맞춰서 풀었다. 아마도 모양이 예외가 더 있는거 같은데 찾지를 못했다.import java.util.Scanner;public class BJ14500 { //미리 포리오미노를 만들고 나중에 비교할 것임. static int[][][] tetrominoes = { {{0, 0}, {0, 1}, {0, 2}, {0, 3}}, {{0, 0}, {1, 0}, {2, 0}, {3, 0}}, // ㅡ 모양 {{0, 0}, {0, 1}, {1, 0}, {1, 1}}, ..

백준 2024.11.26