분류 전체보기

Algorithm/problem solving

Today's Algorithm(2018-10-29)

programmers 완주하지 못한 선수 문제 자체는 크게 어렵지 않았습니다. 하지만 효율성 테스트도 있기 때문에 출제자의 의도에 맞게 푸는게 관건일 것 같네요. 이를 고려하면 HashMap을 이용하여 풀 수 있는데요. 간략하게 정리해볼게요. HashMap에 주어진 참가자를 차례대로 넣는다. 그리고 동명이인의 경우 value값을 증가한다. HashMap에서 완주한 사람을 찾아 value값을 감소한다. 이 때 value값이 0이면 remove()하여 없앤다 HashMap 에 마지막에 남은 1명을 출력한다. 이 방법대로 풀면 다음과 같이 구현할 수 있습니다. class Solution { public String solution(String[] participant, String[] completion) {..

TIL

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

Today's Dev Notes(2018-10-28) 안녕하세요, Brad입니다. 오늘은 '로또' 미션 step3를 짧게 진행해봤는데요. 비록 짧은 시간이긴 하였지만 배우고 느낀 것들을 정리해보도록 하겠습니다. step3에서의 요구사항들은 다음과 같습니다. 산 로또 개수(제거) 수동으로 살 로또 개수 입력(추가) 수동으로 구매할 로또 번호들 입력(추가) 수동, 자동으로 살 로또 개수 출력(추가) 모든 예외상황 처리!! 추가되는 항목들이 좀 있지만 사실 기존 클래스를 재활용(로또로 만드는 부분, String값 파싱하는 부분, 예외처리한 부분 등) 할 것들이 많아 크게 힘든 부분은 없었습니다. 다만 로또를 수동으로 입력받을 때 제대로 값을 입력받지 않는 상황이 발생하였습니다. 처음 입력 받을 때는 제대로 입..

Book/programming

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

스프링 입문을 위한 자바 객체지향의 원리와 이해6 05. 객체 지향 설계 5원칙 - SOLID 객체 지향과 관련된 검색을 하면 SOLID원칙이 종종 발견이 되는데요. 이번 장에서 이 SOLID원칙이 어떤 것을 의미하는지를 다루고 있습니다. 물론 5가지 원칙을 이해하는 것과 이것을 적용하는 것과는 별개의 문제이지만 그래도 이를 잘 숙지하고 있어야 필요에 따라 잘 적용할 수 있다고 생각합니다. 먼저 5원칙은 다음을 의미합니다. SRP(Single Responsibility Principle) : 단일 책임 원칙OCP(Open Close Principle) : 개방 폐쇄 원칙LSP(Liskov Substitution Principle) : 리스코프 치환 원칙ISP(Interface Segregation Pri..

Algorithm/problem solving

Today's Algorithm(2018-10-26)

programmers 다리를 지나는 트럭 어제 세탁이 끝나기를 기다리며 읽어봤던 문제인데요. 처음엔 쉽다고 생각했습니다. 그 때는 고려해야할 변수들이 많이 안 보였거든요. 근데 막상 구현을 하려니 생각보다 변수들이 많더라구요. 현재 다리 무게, 대기 트럭, 다리 위의 트럭, 경과 시간 그래서 문제를 풀다가 이것저것 추가하다보니 되게 지저분해진 것 같아요. 다른 사람들은 어떻게 풀었는지 궁금하네요. 우선 제가 풀었던 방식을 코드로 살펴볼께요. import java.util.LinkedList; import java.util.Queue; class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { Queue..

TIL

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

Today's Dev Notes(2018-10-25) 안녕하세요, Brad입니다. 오늘의 목표는 '로또' 미션 2단계 피드백을 적용하는 것이었습니다. 몇 가지 피드백이 있었는데요. 하나씩 살펴보도록 하겠습니다. 피드백1. 불필요한 DTO 제거 설계를 할 때 LottoChecker라는 클래스를 만들고 이 안에서 로또를 확인하는 작업을 이관하였습니다. 그곳에서 각 로또를 확인하고 그 결과를 넘겨줄 때 StrikeDto 를 별도로 만들었는데요. 이것의 필요성에 대한 의문이었습니다. 결국은 로또 확인을 LottoChecker로 이관했기 때문에 StrikeDto가 생긴거라 LottoChecker의 필요성과 밀접하게 관련이 있는 것이죠. 이와 관련된 처리는 피드백2에서 이어서 하겠습니다. 피드백2. LottoChe..

Language/Java

예외처리

예외처리 오늘 수업시간에 '예외처리'와 관련하여 배웠습니다. 이때까지 미션을 진행해오면서 이에 관한 깊은 이해없이 예외처리를 사용해왔었는데요. 오늘 Pair 프로그래밍에서 주어진 미션들을 해결해 나가면서 여러모로 많은 것들을 배울 수 있는 시간이었습니다. 미션 순서대로 하나씩 정리하면서 개념도 추가적으로 설명하겠습니다. 미션1. PointTest에서 Point에 대한 exception테스트를 추가한다. x, y 값이 0미만, 24초과에 대한 에러 테스트를 추가한다. 첫번째 미션은 JUnit4를 사용하는 테스트코드에서 예외발생했을 때 어떻게 테스트하는지입니다. 간단하게 테스트 코드에서 @test이라는 Annotation옆에 (expected = 예외명.class) 붙여주면 됩니다. 이 부분은 문법적인 내용..

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