728x90 분류 전체보기138 [백준 18223] 민준이와 마산 그리고 건우 https://www.acmicpc.net/problem/18223 18223번: 민준이와 마산 그리고 건우 입력의 첫 번째 줄에 정점의 개수 V와 간선의 개수 E, 그리고 건우가 위치한 정점 P가 주어진다. (2 ≤ V ≤ 5,000, 1 ≤ E ≤ 10,000, 1 ≤ P ≤ V) 두 번째 줄부터 E개의 줄에 걸쳐 각 간선의 정보 www.acmicpc.net 다익스트라 알고리즘을 활용하여 푼 문제입니다. 풀이 간단한 정리 1 : 시작점 P : 건우가 있는 곳 V : 목적지 1 -> V 까지 가는데 P를 들렸다 가도 최단 거리로 갈 수 있는지 확인하는 문제입니다. 기존의 다익스트라 문제와 다르지 않은 방식으로 풀어갔습니다. 다만, P를 지나 갔을 때 최단 거리인지 확인하는 로직을 추가했습니다. (1 -.. 2023. 12. 29. [백준2151] 거울 설치 https://www.acmicpc.net/problem/2151 2151번: 거울 설치 첫째 줄에 집의 크기 N (2 ≤ N ≤ 50)이 주어진다. 다음 N개의 줄에는 N개의 문자로 집에 대한 정보가 주어진다. ‘#’는 문이 설치된 곳으로 항상 두 곳이며, ‘.’은 아무 것도 없는 것으로 빛은 www.acmicpc.net 백준 2151 거울 설치 문제입니다. 다익스트라를 활용해서 풀었습니다. 문제 풀이 먼저 알아야 할 것 거울을 둘 수 있는 곳과 빛이 통과할 수 있는 곳의 가중치를 다르게 둔다. 거울을 둘 수 있는 곳은 빛이 들어온 방향의 직선, 왼쪽, 오른쪽으로 빛을 보낼 수있다. 거울을 둘 수 없는 곳은 빛이 들어온 같은 방향으로만 빛을 보낼 수 있다. 중요한 개념 다른 다익스트라 문제와 마찬가지로.. 2023. 12. 21. [백준 1010] 다리 놓기 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 백준 1010번 문제 다리 놓기 입니다. dp(dynamic programming)를 공부하면서 풀어 본 문제입니다. 문제를 간단하게 요약하면 강을 기준으로 서쪽과 동쪽이 있고 다리를 건설할 수 있는 위치 사이트가 있습니다. 서쪽 사이트 N개, 동쪽 사이트 M개입니다. (N 2023. 12. 5. 캡슐화란 무엇일까? 객체지향의 특징 중에 캡슐화라는 단어가 있습니다! 캡슐화는 무엇이고 무엇이기에 객체지향의 특징이 될 수 있었을까요? 캡슐화 정의 (위키피디아) 객체의 속성과 행위를 하나로 묶고 실제 구현 내용 일부를 내부에 감추어 은닉한다. 위의 정의는 위키피다아에 적혀 있는 내용입니다. 무언가를 묶고 숨기고 하는거 같은데 이것을 통해서 어떤 이득이 있길래 객체지향의 특징이라고 하는 걸까요? 아래의 코드를 보겠습니다. public String getSuperAdmin() { Member kevin = new Member("kevin", 30, true); // **중요** if(kevin.getAge() > 25 && kevin.isAdmin()) { return "super admin"; } return "just a.. 2023. 12. 1. [디자인 패턴] 팩토리 메소드 팩토리 메소드 패턴 팩토리 메소드 패턴은 객체 생성을 공장 클래스로 캡슐화 처리하여 대신 생성하게 하는 디자인 패턴입니다. 다시 정리해보면, 클라이언트가 직접 new 연산자를 이용하여 객체를 생성하는 것이 아니라, 객체의 생성을 도맡아서 하는 팩토리 클래스를 만들고 이를 상속하는 서브 팩토리 클래스의 메소드에서 여러 가지 클래스를 만들어 내는 것입니다. 좀 더 이해를 쉽게 하기 위해서 그림을 그려왔습니다... ㅎㅎ 순서대로 설명해 보겠습니다. 1. 추상 팩토리 클래스를 만듭니다. 2. 추상 팩토리 클래스를 상속한 서브 팩토리 클래스를 두 개 만듭니다. 3. 각각의 서브 팩토리 틀래스는 A상품과 B상품을 만들어냅니다. 4. A상품과 B상품은 각각 하나의 인터페이스를 상속받고 있고 추상 팩토리 클래스의 생성.. 2023. 8. 29. [스프링] 스케줄러 cron 사용하기 새로 지원한 회사에서 내준 과제를 진행하면서 '만료 기간'에 대한 요구사항을 만났습니다. 따라서, db에 저장된 데이터의 만료 시간이 되면 상태값을 바꿔줘야 했습니다. 이런 요구사항을 해결하기 위해 직접 상태를 바꿔줄 수는 없었고 '스케줄러'를 사용하기로 결심을 했습니다. 저는 application의 main 메소드가 있는 클래스에 @EnableScheduling을 추가했습니다. 위의 어노테이션을 달아줘야 스프링부트가 @Scheduler를 인지할 수 있다고 합니다. @Scheduler은 제가 원하는 클래스안에 메소드에 붙여줍니다. 우선, 간단하게 코드로 만나보겠습니다. @SpringBootApplication @EnableScheduling // 추가된 어노테이션 public class SpringStu.. 2023. 7. 26. 이전 1 2 3 4 5 6 ··· 23 다음 728x90