전체 글

문제 링크: https://www.acmicpc.net/problem/5052 풀이 정렬과 트리를 이용하여 풀 수 있는 문제였다. 풀이를 찾아보니 훨씬 센스있는 방법으로 푼 분들도 많았다. (1) 전화번호 정렬하기 N = Integer.parseInt(br.readLine()); String[] phoneNumbers = new String[N]; for (int i=0; i NO를 출력하고 다음 테스트케이스로 넘어감 2. 다음 문자를 검사. 다음 문자가 n이면 다음 노드는 child[n]이 됨 3. 만약 child[n]이 null면 새 인스턴스 할당해주기 4. 다음 노드로 이동 5. 다음 문자가 없다면, 현재 노드의 cnt를 1 증가시키기 위와 같은 알고리즘을 코드로 옮기면 이렇게 된다. boolean..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/214289 풀이 어쩌다보니 또! DP 문제를 잡았다. DP 좀 그만 잡고 싶은데 고르는 문제마다 DP...🥹 dp[i][j] = i분일 때 j도를 유지하기 위한 최소 소비전력으로 두고 풀어나가면 된다. 현재 시간이 i, 현재 온도가 j일 때 고를 수 있는 선택지는 다음 4가지가 있다. 1. 에어컨 끄기 2. 온도 1도 올리기 3. 온도 1도 내리기 4. 온도 유지하기 문제를 잘 읽어보면 알겠지만 희망온도는 의미가 없다. 현재 온도가 26도라면, 희망온도를 40도로 설정하든 30도로 설정하든 똑같기 때문이다. 중요한 건 온도를 올릴지 내릴지이다. 온도 범위 보정 문제에서 주어지는 온도 범위..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 1. 컴포넌트 스캔이란? @Configuration public class AppConfig { @Bean public OrderService orderService() { System.out.println("call orderService()"); return new OrderServiceImpl(discountPolicy()); } @Bean public DiscountPolicy discountPolicy() { System.out.println("call discountPolicy()"); return new FixDiscountPolicy(); } } 지금까지는 설정 정보 파일에 등록할 스프링 빈을 직접 나열해..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 1. 싱글톤 패턴이란? 싱글톤 패턴이란 객체의 인스턴스를 딱 1개만 생성하는 것을 말한다. 생성자를 몇 번 호출하더라도 인스턴스는 딱 1개만 생성되고, 인스턴스 생성 이후에 호출되는 생성자는 이전에 생성해둔 인스턴스를 반환해야 한다. 싱글톤 패턴을 구현하는 방법은 여러가지가 있지만, 주로 아래와 같은 방법이 많이 쓰인다. class Singleton { private static final Singleton singleton = new Singleton(); public static Singleton getInstance(){ return singleton; } } singleton 필드는 static 멤버로 설정하여 ..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 이전 글에서 AppConfig처럼 DI와 IoC를 해주는 것을 DI 컨테이너라고 부른다는 이야기를 했었다. 이번에는 스프링에서 DI와 IoC를 제공하는 스프링 컨테이너에 대해 알아보자. 1. 스프링 컨테이너란? 스프링 컨테이너는 컨테이너에 등록된 객체들의 생명 주기를 관리하고, 객체들에게 추가적인 기능을 제공한다. 스프링 빈으로 등록된 객체들의 인스턴스를 생성하고, 스프링 빈 사이에 의존관계를 주입하는 게 바로 스프링 컨테이너의 역할이다. 이전 글에서 보았던 AppConfig의 역할을 담당한다고 보면 된다. 그렇다면 기존의 AppConfig와는 뭐가 다르길래 굳이 스프링 컨테이너를 쓰는 걸까? 2. 스프링 컨테이너 설정..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/118668 풀이 대충 훑고 재밌어보여서 골랐는데 어쩌다보니 2연속 DP 문제를 풀게 되었다😂 이 문제에서는 현재 알고력과 현재 코딩력, 그리고 현재 알고력과 현재 코딩력까지 도달하기 위한 최단 시간을 저장해야 한다. 따라서 dp배열은 dp[알고력][코딩력] = 최단 시간의 형태가 된다. DP 문제라고 생각한 이유는, dp[알고력][코딩력] = k의 값을 다음에 다시 재활용하기 때문이다. 실제 점화식을 세워보면, 다음 문제의 답을 구할 때 이전 문제의 답 k가 재활용된다는 것을 확인할 수 있다. (1) 점화식 세우기 현재 알고력이 i, 현재 코딩력이 j, dp[i][j] = k라고 가정하면..
gorapaduckoo
진화의 돌