분류 전체보기
[99클럽 코테 스터디 32일차 TIL] 가장 긴 바이토닉 부분 수열 - 백준 11054
오늘은 조금 어려웠다. https://www.acmicpc.net/problem/11054수열 S가 어떤 수 Sk를 기준으로 S1 Sk+1 > ... SN-1 > SN을 만족한다면, 그 수열을 바이토닉 수열이라고 한다.예를 들어, {10, 20, 30, 25, 20}과 {10, 20, 30, 40}, {50, 40, 25, 10} 은 바이토닉 수열이지만, {1, 2, 3, 2, 1, 2, 3, 2, 1}과 {10, 20, 30, 40, 20, 30} 은 바이토닉 수열이 아니다.수열 A가 주어졌을 때, 그 수열의 부분 수열 중 바이토닉 수열이면서 가장 긴 수열의 길이를 구하는 프로그램을 작성하시오.[입력]첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1..
![[GoF Design Patterns] Flyweight](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3QBmN%2FbtsKYwUhKIf%2FGm9LF6u9qR4wkX8qF751pk%2Fimg.png)
[GoF Design Patterns] Flyweight
Flyweight 패턴은 Cache로도 알려져 있습니다.Cache가 더욱 친숙합니다.1. 목적객체들의 모든 데이터를 유지하는 대신에 여러 객체들 간에 공통된 상태 부분을 공유함으로써 사용 가능한 RAM 공간에 더 많은 객체를 넣을 수 있게 하는 패턴입니다.알면서도 모르겠습니다.2. 문제 상황플레이어들이 맵을 돌아다니며 싸우는 게임을 만든다고 가정합니다.방대한 양의 총알, 미사일, 파편들이 맵 전체를 날아다니는 경험을 주기 위해 현실적인 입자 시스템(Particle System)을 만들고자 합니다.게임을 완성시키고, 테스트를 위해 친구에게 게임을 전달했습니다.하지만 여러분의 컴퓨터에서 잘 실행되는 게임이 친구의 컴퓨터에서는 몇 분 플레이한 후 계속 충돌하게 됩니다.원인을 알아보니 친구의 컴퓨터는 여러분의 ..
[99클럽 코테 스터디 31일차 TIL] 줄세우기 - 백준 2631
LIS 변형 문제이다. https://www.acmicpc.net/problem/2631문제 내용KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다.선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다.선생님은 아이들을 효과적으로 보호하기 위해 목적지까지 번호순서대로 일렬로 서서 걸어가도록 하였다.이동 도중에 보니 아이들의 번호순서가 바뀌었다.그래서 선생님은 다시 번호 순서대로 줄을 세우기 위해서 아이들의 위치를 옮기려고 한다.그리고 아이들이 혼란스러워하지 않도록 하기 위해 위치를 옮기는 아이들의 수를 최소로 하려고 한다.예를 들어, 7명의 아이들이 다음과 같은 순서대로 줄을 서 있다고 하자.3 7 5 2 6 1 4아이들을 순서대로 줄을 세우기 위해, 먼저 4..
![[GoF Design Patterns] Facade](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJOQiP%2FbtsKYrYFqyg%2FJd7YNQWjK5O6zRAmHNLCS1%2Fimg.png)
[GoF Design Patterns] Facade
Structural Patterns들을 계속해서 알아봅시다.1. 목적Library, Framework 또는 기타 복잡한 Class 집합에 대한 단순화된 인터페이스를 제공합니다.2. 문제 상황정교한 Library나 Framework에 속하는 광범위한 객체 집합으로 코드를 작동시켜야 한다고 가정해 봅시다.일반적으로 사용할 객체들을 초기화하고, 종속성을 추적하고, 순서에 맞는 메서드를 실행합니다.결과적으로 클래스의 비즈니스로직이 타사 클래스들의 세부 구현 사항들과 밀접하게 결합되어 있어 코드를 이해하고 유지 관리하기 어려워집니다.3. 해결책Facade 패턴을 이용한다면 복잡한 하위 시스템에 대한 간단한 인터페이스를 제공하는 클래스를 생성합니다.하위 시스템 자체를 직접 사용하는 것보다는 제한된 기능이 제공될 ..
[Clean Architecture] 구조적 프로그래밍
- Clean Architecture를 읽으면서 든 개인적인 생각과 내용을 정리한 글입니다.- 책의 내용을 보기 쉽게 정리 및 요약한 글이 아닙니다. 3장에서는 프로그래밍의 패러다임에 대해 간략히 설명한다.그리고 4,5,6 장에 걸쳐 대표적으로 유명한 구조적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍에 대해 설명한다.프로그래밍 패러다임과 아키텍처의 세 가지 중요점(함수, 컴포넌트 분리, 데이터 관리)가 어떤 연관성을 갖는지 생각해보자. 구조적 프로그래밍(Structured Programming)이번 글에서는 구조적 프로그래밍(Structured Programming)에 대해 먼저 알아본다.1968년 에츠허르 비버 데이크스트라(Edsger Wybe Dijkstra)가 발견했다.발음하기에 따라 다른..