본문 바로가기

전체 글417

[JAVA] 프로그래머스 LEVEL3 정수 삼각형 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트 연습 > 동적계획법(Dynamic Programming) > 정수 삼각형 난이도: LEVEL3알고리즘 유형: 다이나믹 프로그래밍 정답 코드 class Solution { public int solution(int[][] triangle) { int n = triangle.length; // 삼각형 높이 & 밑변 for(int i = n - 2; i >= 0; i--){ for(int j.. 2024. 10. 30.
[Effective Java] 아이템10: equals는 일반 규약을 지켜 재정의하라 Chapter 03: 모든 객체의 공통 메소드 03장에서는 Object 클래스의 메소드 중에서 오버라이딩이 가능한(not final)한 메소드들에 대해서 설명한다.또한 이 메소드들은 모두 재정의를 염두에 두고 설계된 것이라 어떤 상황에서 어떻게 재정의 해야 하는지에 대해 알려준다.equals 메소드 public class Object { public boolean equals(Object obj) { return (this == obj); }}equals 메소드는 재정의하기 쉬워 보이지만 함정이 많다.잘못 재정의 하면 끔찍한 결과를 초래한다.문제를 회피하는 가장 쉬운 길은 Object에 정의된 메소드를 그대로 사용하는 것이다.equals 메소드 재정의 하지 말자지금부터 equals.. 2024. 10. 28.
[Design Pattern] 퍼사드(Facade) 패턴 퍼사드(Facade) 패턴facade 뜻 얼굴, 건물에서는 건물의 얼굴, 즉 주요 전면을 의미한다. 복잡한 서브 시스템 의존성을 최소화하는 방법클라이언트가 사용해야 하는 복잡한 서브 시스템 의존성을 간단한 인터페이스로 추상화 할 수 있다.퍼사드(Facade) 패턴 beforepublic class Client { public static void main(String[] args) { String to = "baejeu@naver.com"; String from = "whiteship@whiteship.me"; String host = "127.0.0.1"; Properties properties = System.getProperties(); .. 2024. 10. 28.
[Design Pattern] 데코레이터 (Decorator) 패턴 데코레이터 (Decorator) 패턴기존 코드를 변경하지 않고 부가 기능을 추가하는 패턴상속이 아닌 위임을 사용해서 보다 유연하게(런타임에) 부가 기능을 추가하는 것도 가능하다.데코레이터 (Decorator) 패턴 beforepublic class CommentService { public void addComment(String comment){ System.out.println(comment); }}public class Client { private final CommentService commentService; public Client(CommentService commentService) { this.commentService = commentSe.. 2024. 10. 28.
[JAVA] 프로그래머스 LEVEL3 징검다리 건너기 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트 연습 > 2019 카카오 개발자 겨울 인턴십 > 징검다리 건너기 난이도: LEVEL3알고리즘 유형:  이분탐색 (매개변수 탐색)풀이 설명 전형적인 이분 탐색 문제이다.징검다리를 건너는 게 가능한 니니즈 친구들의 최대 수를 구한다.  이분 탐색 시작 조건 start = 0end  = 200,000,000 모든 징검 다리가 end와 동일하면 최대 200,000,000 만큼 징검다리를 건널 수 있다.  calculate APIpublic s.. 2024. 10. 28.
[JAVA] 프로그래머스 LEVEL3 모두 0으로 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/76503 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트 연습 > 월간 코드 챌린지 시즌2 > 모두 0으로 만들기  난이도: LEVEL3알고리즘 유형:  여러가지 그래프 탐색 풀이 설명 트리 문제이다. 해당 트리는 이진 트리가 아니다.트리의 특징은 어떤 정점을 루트 노드로 잡아도 트리 모양이다.  0번 정점을 루트 노드로 잡고 다른 노드들의 level을 구한다.루트 노드인 0번 정점은 level 1 다른 노드의 level을 구하는 방식은 dfs 메소드를 사용해서 구했다.level을 구하면서 .. 2024. 10. 28.