분류 전체보기
[99클럽 코테 스터디 18일차 TIL] 센서 - 백준 2212
오늘도 Greedy 문제이다.문제를 이해하는데 시간이 좀 걸렸다. https://www.acmicpc.net/problem/2212한국도로공사는 고속도로의 유비쿼터스화를 위해 고속도로 위에 N개의 센서를 설치하였다. 문제는 이 센서들이 수집한 자료들을 모으고 분석할 몇 개의 집중국을 세우는 일인데, 예산상의 문제로, 고속도로 위에 최대 K개의 집중국을 세울 수 있다고 한다.각 집중국은 센서의 수신 가능 영역을 조절할 수 있다. 집중국의 수신 가능 영역은 고속도로 상에서 연결된 구간으로 나타나게 된다. N개의 센서가 적어도 하나의 집중국과는 통신이 가능해야 하며, 집중국의 유지비 문제로 인해 각 집중국의 수신 가능 영역의 길이의 합을 최소화해야 한다.편의를 위해 고속도로는 평면상의 직선이라고 가정하고, 센..
![[GoF Design Patterns] Decorator](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqiOg9%2FbtsKHqfuRAz%2FcfouOztzg7KkcHyzu71W50%2Fimg.png)
[GoF Design Patterns] Decorator
오늘 알아볼 패턴은 Decorator입니다.Wrapper라고도 알려져있는데요. 이전에 알아본 Adapter 패턴도 Wrapper라고 불렸습니다.두 패턴 모두 Wrapper불리는 이유와 어떤 차이점 있는지도 알아보도록 합시다.1. 목적객체들을 특수 Wrapper 객체들 내에 넣어서 새로운 동작을 추가할 수 있도록 하는 패턴입니다.2. 문제 상황어떠한 프로그램에서 사용자에게 중요한 이벤트를 알려주는 알림 라이브러리를 개발하고 있다고 가정합시다.초기에는 몇 개의 프로퍼티와 하나의 생성자 그리고 send라는 메서드를 갖는 Notifier 클래스가 있었습니다.send 메서드는 클라이언트로부터 메세지를 인자로 받은 후 Notifier의 생성자를 통해 Notifier에게 전달된 이메일 목록으로 알림을 보냅니다.클라이..
[99클럽 코테 스터디 17일차 TIL] 밤양갱 - 백준 31926
달디달고 달디달고 달디단 밤양갱이다.양갱을 좋아하는 편은 아니다. https://www.acmicpc.net/problem/31926달디달고, 달디달고, 달디단, 밤양갱, 밤양갱민우는 비비의 신곡 에 꽂혀 하루 종일 "달디달고 달디달고 달디달고... 달디단"이 머릿속을 맴돌고 있다.민우의 머릿속에선 daldidalgo가 총 N번 반복된 후,반복이 완료되었다면 daldidan으로 끝나게 된다.예를 들어 N=3이라면 민우의 머릿속엔 daldidalgodaldidalgodaldidalgodaldidan이 재생된다.민우는 N이 주어지면 얼마나 빨리 daldidalgodaldidalgo...daldidan을 컴퓨터에 입력할 수 있는지 궁금하다. 매초 민우는 두 개의 작업 중 하나를 선택하여 시행할 수 있다.- 알..
[99클럽 코테 스터디 16일차 TIL] 게임을 만든 동준이 - 백준 2847
오늘도 그리디다. https://www.acmicpc.net/problem/2847학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어의 점수는 레벨을 클리어하면서 얻은 점수의 합으로, 이 점수를 바탕으로 온라인 순위를 매긴다. 동준이는 레벨을 난이도 순으로 배치했다. 하지만, 실수로 쉬운 레벨이 어려운 레벨보다 점수를 많이 받는 경우를 만들었다.이 문제를 해결하기 위해 동준이는 특정 레벨의 점수를 감소시키려고 한다. 이렇게해서 각 레벨을 클리어할 때 주는 점수가 증가하게 만들려고 한다.각 레벨을 클리어할 때 얻는 점수가 주어졌을 때, 몇 번 감소시키면 되는지 구하는 프로..
[99클럽 코테 스터디 15일차 TIL] 카드 문자열 - 백준 13417
Greedy 초반이라 쉬운 문제들이 나오는듯 하다. https://www.acmicpc.net/problem/13417N장의 카드가 일렬로 놓여있다. 각 카드에는 알파벳이 하나씩 적혀있다. 태욱이는 가장 왼쪽에 있는 카드부터 차례대로 한 장씩 가져올 수 있다. 가장 처음에 가져온 카드는 자신의 앞에 놓는다. 그다음부터는 가져온 카드를 자신의 앞에 놓인 카드들의 가장 왼쪽, 또는 가장 오른쪽에 놓는다. 태욱이는 모든 카드를 다 가져온 후에 자신의 앞에 놓인 카드를 순서대로 이어 붙여 카드 문자열을 만들려고 한다.예를 들어 3장의 카드가 [M, K, U] 순으로 놓여있다고 하자. 태욱이는 먼저 가장 왼쪽에 있는 “M”이 적힌 카드를 가져와서 자신의 앞에 놓는다. 다음으로 남은 카드 중 가장 왼쪽에 있는 “K..