2025/01/08 2

[백준/Java] 27737번 : 버섯 농장

✏️ 문제 탐색https://www.acmicpc.net/problem/27737 이번 문제는 설명이 길어서 조건을 파악하기 쉽게 요약해보았다.NxN 나무판에 M개의 버섯 포자를 심는다.버섯이 자랄 수 있는 칸과 자랄 수 없는 칸이 있는데, 자랄 수 있는 칸에만 심을 수 있다.심어진 버섯 포자는 심어진 칸을 포함해 K개의 상하좌우로 연결된 칸에 자란다.한 칸에 x개를 겹쳐서 심는다면 심어진 칸을 포함해 K*x개의 상하좌우로 연결된 칸에 자란다.M개의 버섯 포자 중 최소 개수를 사용하여 농사가 가능한지 불가능한지 출력하라.농사가 가능하다는 것의 의미는 다음과 같다.버섯 포자를 하나라도 사용하였음버섯이 자랄 수 있는 모든 칸에 버섯이 전부 자람농사가 가능하다면 POSSIBLE을 출력하고, 다음 줄에 남은 버..

코테 2025.01.08

[디자인 패턴] 정적 팩토리 메서드 (Static Factory Method)

🖍️ new 키워드의 단점?우리는 객체를 생성할 때 보통 new 키워드로 직접 생성자를 호출해서 생성한다.Calc c = new Calc(); new 키워드는 간단하지만 단점이 존재한다.읽기 어려운 생성자생성자의 매개 변수가 많아지면 읽기가 힘들고 유지 보수가 어렵다.객체의 특징을 파악하기 어려움생성자의 이름은 바꿀 수 없으므로 생성되는 객체의 목적과 의미를 구분지을 수 없다. 예) new Calc(int x, int y);와 new Calc(int x, int y, int z); 둘은 성격이 다르지만 모두 Calc라는 이름의 생성자를 사용객체 제어 불가생성자는 응집도를 높이기 위해 내부에 코드를 구현하지 않는 것이 권장된다.따라서 생성자 내부에 객체 생성 로직을 두기 어려우므로 객체 생성 과정을 제어..

CS 2025.01.08