분류 전체보기 114

땅따먹기(동적계획법, 문제 출처 : 프로그래머스)

[문제] 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 없습니다. 마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하는 solution 함수를 완성해 주세요. 위 예의 경우, 1행의 네번째 칸 (..

팩토리 패턴(Factory Pattern) 이란?

이번 시간에는 팩토리 패턴(Factory Pattern)에 대해서 알아보도록 하겠습니다. 원칙 : 바뀔 수 있는 부분을 찾아내서 바뀌지 않는 부분하고 분리시켜야 한다. new를 사용하는 것은 구상클래스의 인스턴스를 만드는 것입니다. 구상클래스를 바탕으로 코딩을 하면 나중에 코드를 수정해야할 가능성이 높아지고, 유연성이 떨어지게 됩니다. 그 이유는 바로 변화에 약하기 때문입니다. 인터페이스에 맞춰서 코딩을 하면 시스템에서 일어날 수 있는 여러가지 변화를 이겨낼 수 있습니다. 이렇게 구상클래스의 인스턴스를 만드는 부분을 찾아서 분리/캡슐화 하기 위해서 바로 팩토리 패턴을 씁니다.팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만..

프록시 패턴(proxy pattern) 이란?

이번에는 프록시 패턴(proxy pattern)에 대해서 알아보도록 하겠습니다. 프록시 패턴은 어떤 객체에 대한 접근을 제어하는 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴입니다. 주로 프록시 패턴은 RealSubject 가 원격 시스템에서 돌아가거나, 그 객체의 생성 비용이 많이 들어 실제 사용 시점에 객체를 생성하거나, 실제 객체에 접근을 제한 및 제어를 해야 할 때 등 의 경우에 사용 됩니다. 프록시 패턴의 UML은 아래와 같습니다. Proxy 에는 RealSubject에 대한 레퍼런스가 들어있습니다. 그리고, Proxy 와 RealSubject 는 똑같은 인터페이스(Subejct)를 구현하기 때문에 RealSubejct 객체가 들어갈 자리면 어디든지 Proxy 를 대신 쓸 수 있습니다..

[리뷰 - 영화] 151 경기 (When the Game Stands Tall)

불금의 밤.. 일찍 잠들기 싫어서 KT셋톱의 추천 무료영화를 뒤지다가 평점이 괜찮아서 보게 된 영화입니다.실화를 배경으로 한 영화이고, 미식축구 영화입니다. 코치가 기독교인이라서 그런지 기독교 가치관이 묻어나는 영화 입니다. 참고하세요. 저는 개인적으로 풋볼을 가르치는 코치의 철학이 너무 멋있었습니다.경기에 이기고 지고가 아닌 인생에서 최선을 다하는 방법을 가르치고, 팀워크의 중요성을 이야기 합니다. 요즘과 같이 좋은 선생님, 코치, 멘토, 리더 를 보기 힘든 시대에 다시 한번 그들의 역할이 무엇인지 생각해보게되었습니다.그리고, 팀워크를 이루어 내는데, 무엇이 뒷바침되어야 하는가는 것도 곱씹어봅니다. 공식 예고편(official trailer)

스테이트 패턴(State Pattern) 이란?

이번 시간에는 스테이트 패턴(State Patter)에 대해서 알아보겠습니다. 사탕 뽑기 기계 프로그램을 구현한다고 가정하면 사탕뽑기 기계는 '동전없음', '동전있음', '상품배출', '상품품절' 상태를 가질 것입니다.그리고, 사탕뽑기의 각 상태는 아래와 같은 행위를 통해서 다른 상태로 변이하게 됩니다. 이 행위들과 상태를 코드로 구현하면 아래와 같이 구현할 수 있을껍니다. public class GumBallMachine { final static int SOLD_OUT = 0; final static int NO_QUARTER = 1; final static int HAS_QUARTER = 2; final static int SOLD = 3; private int numberOfGumBall = 0;..

이터레이터 패턴 (Iterator Pattern) 이란?

2019년은 리펙토링 및 소스코드의 품질, 설계 공부에 초점을 맞춰서 책을 읽고, 공부를 하고 있습니다.그 중 Head First Design Patterns 책을 보고 패턴에 대해 공부한 내용들을 조금씩 정리해서 시리즈로 꾸준히 올려보도록 하겠습니다. 금일은 이터레이터(iterator) 패턴입니다. 이터레이터(iterator) 패턴은 컬렉션 구현방법을 노출 시키지 않으면서도 그 집합체 안에 들어 있는 모든 항목에 접근할 수 있게 해주는 방법을 제공해 줍니다. 이터레이터(iterator) 패턴을 사용하면 객체안의 항목 또는 컬렉션 객체 안에 들어있는 모든 항목에 접근하는 방식을 통일할 수 있습니다. 이렇게 접근 방식을 통일하게 되면 어떤 종류의 객체에 대해서도 사용할 수 있는 다형적인 코드를 만들 수 있..

2018년 회고 및 2019년 계획

1. 2017년에 작성한 2018년 계획-. 건강 운동 및 체중 감량, 치과치료 -. 개인 역량 강화 개인 프로젝트의 횟수 증가 -> 실제적인 광고 및 기타 수입 증대로 이어지도록 노력할 것.영어 - 토익 스피킹으로 실제적인 성적 및 공부량 증대.자료구조, 알고리즘 등 실제 프로그램 동작 원리 이해를 위한 기초 학문 학습에 시간 투자.독서 : 한달에 1권이상 읽고, 간단한 리뷰라도 블로깅하기.오픈소스 프로젝트에 도전해보기 -. 봉사 교회의 토요모임에서 과학 또는 프로그래밍 관련 클래스 진행재능기부 모임 찾기 2. 2018년 회고-. 건강(1) 치과 치료 진행 중 (50%) : 비용이 어마어마 하게 소요되었다. 치과는 역시 미리 미리 가야되고, 자주 검진 받아야 한다는 사실을 몸소 깨달음.(2) 체중은 운..

Essay 2019.01.02

2019년 신년 메시지는 '기분 좋은 인사' 로 보내세요.

'기분 좋은 인사 : 2019년, 새해 인사말 및 안부, 감사, 경조사 등 인사말' 확인 - https://play.google.com/store/apps/details?id=com.toyproject.greeting 2019년 새해, 지인들에게 '기분 좋은 인사'로 새해인사를 보내보세요. 새해, 연말 인사말, 이미지 카드가 가득합니다. 1. 새해, 추석, 크리스마스, 결혼기념일 등과 경조사 및 안부 인사가 필요할 때 어떤 내용으로 메시지를 보낼까 고민하지 마세요. 샘플 텍스트 메시지를 확인하시고 선택 후 바로 보내세요. 2. 단순한 텍스트 형태의 메시지 말고, 특별한 메시지를 보내고 싶습니까? 이미지 카드 형태의 메시지를 보내보세요. 당신이 보낸 메시지가 특별해 질 것 입니다.

Toy Project 2018.12.30

2019년 새해 신년 말씀 어플

2019년 새로운 해의 나침반이 되어줄 성경 말씀 구절을 뽑아보세요. 재미있게 말씀을 뽑아 친구들, 가족, 지인들과 함께 공유해보세요. '신년 말씀 뽑기' 확인 - https://play.google.com/store/apps/details?id=com.toyproject.slippaper - 주요 기능 - 1. 휴대폰을 흔들거나 '흔들기' 버튼을 누르면 다수의 말씀쪽지가 화면에 뿌려집니다. 나온 말씀쪽지를 하나 선택하면 올해의 성경구절이 나옵니다. 2. 뽑은 성경 구절의 글씨체, 글씨색상, 배경색상 들을 간단히 변경가능합니다. 3. 뽑은 성경 구절을 이미지로 변환하여, 페이스북, 인스타그램 등에 공유가능합니다. 4. 저장/공유 버튼을 클릭하면 '/Pictures/SlipPaper' 폴더에 저장됩니다. ..

Toy Project 2018.12.30