목록2024/05/10 (2)
자바칩
난이도: Gold 4문제: https://www.acmicpc.net/problem/14502 세로: N, 가로: M인 N * M 행렬이 있다. 3개의 벽(1)을 임시로 둔다. 바이러스(2)가 벽(1)을 제외하고 상하좌우로 퍼진다. 바이러스가 퍼지지 않은 구역은 남은 0의 개수를 세어 보면 된다.총 27개가 나온다. 바이러스가 최소한으로만 퍼지게, 즉 안전 영역의 개수가 최대한 많게 3개의 벽을 세워야 한다. N, M의 최대 개수가 8인 것을 보면 시간 복잡도에 전혀 영향을 끼치지 않는다.벽을 3번 세우려면 최소 6중 for문을 돌려야 할 것 같은데,8 * 8 * 8 * 8 * 8 * 8 = 262,144인 것을 보면 정말 시간 복잡도를 신경 쓰지 않아도 된다. 3개의 벽을 세우기 위해서는 브루..
1. @Override 어노테이션의 용도는 무엇인가요?부모 클래스에서 선언된 메소드의 이름과 매개변수가 같은 메소드를 자식 클래스에 선언하는 것을 Overriding이라고 한다. 만약 자식 클래스에 선언된 메소드가 여러 개일 경우, 어떤 메소드가 Overriding된 메소드인지 찾기 어려울 수도 있기 때문에, 명시적으로 어노테이션을 선언해서 Overridng된 메소드를 쉽게 찾기 위한 용도이다. 또한, 자식 클래스에서 Overriding한 메소드를 선언할 때 혹시 잘못 코딩했을 수도 있으니 컴파일러한테 확인해 달라고 요청하는 용도이다.*사용 예시@Overridepublic void overridingMethod() {} 2. @SuppressWarnings 어노테이션의 용도는 무엇인가요?컴파일할 때 경..