분류 전체보기

Algorithm/problem solving

Today's Algorithm(2018-10-25)

Today's Algorithm(2018-10-25) programmers 기능개발 최근에 이 문제를 시도하였다가 실패했던 적이 있었습니다. 그 때 저의 가장 큰 실수는 문제를 잘못 이해했던 것이었고 그 때문에 시간은 시간대로 날리고 문제도 해결하지 못했던 기억이 있습니다. 그래서 알고리즘 문제풀이에서 가장 기본 중의 기본인 문제를 다시 꼼꼼하게 읽고 시작하였습니다. 이 문제에서 가장 핵심은 제일 앞부분부터 완료되어야 한다는 것입니다. 앞부분부터 나가야 뒤에도 나갈 수 있는 터널과 같은 구조인 것입니다. 그래서 Queue를 써야겠다는 생각이 들었습니다. 그리고 테스트코드를 통해 하나하나씩 접근하였습니다. 제가 먼저 궁금했던 것은 큐가 반복되는 환경에서 큐의 개수를 줄여나갈 수 있는지였습었습니다. 왜냐하면..

TIL

Today's Dev Notes(2018-10-24)

Today's Dev Notes(2018-10-24) 어제 설계가 잘 안되어 많이 힘들었는데요. 다행히 오늘은 어제보다 진전이 좀 있었네요. 정리해볼게요. 어제 막혔던 부분 보너스로 뽑는 2등을 어떻게 담아야 할까 LottoChecker의 역할 enum의 활용 여기에서 LottoChecker라는 클래스의 역할은 2등을 담는 방법에 대한 고민과 무관하지 않은 것 같아요. 왜냐하면 LottoChecker에서 로또 체크에서 나오는 값들을 토대로 등수를 정해서 2등을 담아야할 부분이 나오게 될테니까요. enum의 활용 먼저 'enum의 활용'과 관련된 부분부터 시작하겠습니다. 어제 같은 과정 멤버들이 가르쳐준 자료에서 큰 힌트를 얻을 수 있었는데요. 자료 내용은 다음과 같습니다. public enum Rank ..

TIL

Today's Dev Notes(2018-10-23)

Today's Dev Notes(2018-10-23) 오늘 '로또 미션' 2단계를 진행하였는데요. 너무 안 풀리는 하루였습니다. 음.. 어떻게 설계하면 좋을지 잘 모르겠더라구요. 오늘 진행한 부분과 막혔던 부분을 기록해두려 합니다. 우선 로또 2단계에서 구현할 부분은 다음과 같았습니다. 2등을 위한 보너스볼 하나 더 추첨, 당첨 통계에 2등 추가(기능 요구사항) enum 적용(프로그래밍 요구사항) 이외 제가 좀 더 구현해보고 싶었던 부분은 아래와 같습니다. 예외처리 입력개수 6개 값이 범위(1 ~ 45) 안에 들도록 할 것 → Lotto, 보너스 번호 모두 해당 같은 값이 있는지 조사 보너스 번호가 로또 번호 6개랑 중복되지 않도록 할 것 상속 관계 적용 Lotto 클래스 만들어 List 구조 벗어나기 ..

Algorithm/problem solving

Today's Algorithm(2018-10-22)

Today's Algorithm(2018-10-22) programmers 탑 수업시간에 다뤘던 문제인데.. 제가 문제를 풀고 있었던지 그 풀이가 기억이 안나네요. 그래서 아쉽지만 제가 풀었던 방법만 기록할 수 있을 것 같네요. 이 문제를 단순하게 정리하면 각 탑의 꼭대기에서 왼쪽 방향으로 전파를 보낼 때 걸리는 탑이 있으면 걸렸던 탑의 인덱스, 없으면 0을 배열에 넣으면 됩니다. 문제가 스택/큐 카테고리에 있는 만큼 최대한 스택/큐를 이용해보려 노력해봤는데요. 그래서 설계를 다음과 같이 하였습니다. 왼쪽에서 하나씩 탐색 기준을 두면서 하나씩 기준을 증가시킨다. 탐색 기준 이전까지 값들을 스택에 모두 넣어둔다. 스택의 사이즈를 하나씩 줄이면서 탐색 기준 값보다 큰 값을 만나면 그 값의 인덱스(스택크기 +..

Language/Java

enum

enum 오늘 수업시간에 리팩토링을 통해 enum, 익명 클래스, 람다(lamda)의 개념을 배울 수 있었습니다. 하지만 오늘 주제가 enum인 만큼 enum 위주로 정리해보도록 하겠습니다. 먼저 리팩토링 할 코드입니다. import java.util.List; public class FigureFactory { Figure getInstance(List points) { if (points.size() == 2) { return new Line(points); } if (points.size() == 3) { return new Triangle(points); } if (points.size() == 4) { return new Rectangle(points); } throw new IllegalArg..

Book/programming

스프링 입문을 위한 자바 객체지향의 원리와 이해5

스프링 입문을 위한 자바 객체지향의 원리와 이해5 03. 자바와 객체 지향 캡슐화: 정보 은닉 자바에서 정보 은닉이라고 하면 접근 제어자(private, default, protected, public)를 떠오르는데요. 이 4개의 접근 제어자에 대해 간략하게 설명하면 다음과 같습니다. public : 모두가 ~ 접근 가능 protected : 상속 / 같은 패키지 내의 클래스에서 접근 가능 default : 같은 패키지 내의 클래스에서 접근 가능 private : 본인 클래스 내에서만 접근 가능 그런데 잊기 쉬운 것은 protected도 default와 같이 같은 패키지 내의 클래스에서 접근 가능하다는 점입니다. 또 접근 제어자를 고려할 때 중요한 점은 ..

Brad Lee
'분류 전체보기' 카테고리의 글 목록 (31 Page)