전체 글

Algorithm/problem solving

Today's Algorithm(2019-01-02)

programmers. 타일 장식물 문제 자체는 어렵지 않았습니다. 원소가 4개 이상이면 answer은 제일 마지막에서 앞으로 순서대로 3배, 2배, 2배, 1배 한 값들을 더해주면 구할 수 있거든요. 다만 효율성 테스트에서 실패가 발생했었는데요. 그래서 코드를 조금씩 수정해봤는데 결국은 해결방법은 형변환이었습니다 위 과정을 다 정수(Integer)타입으로 계산을 했었는데 실제 반환값이 long이었거든요. 형변환 과정에서 좀 더 시간이 걸렸던 것 같아요. 실제로 답을 제출할 때 2ms에서 실패가 떴었는데 계산과정 내에서 long타입으로 하면 1ms로 시간이 줄어들 수 있었거든요. 반환값 타입이 제가 계산한 것과 다를 때는 형변환이 필요한지 유무도 고려해야할 것 같네요. class Solution { pu..

Book/programming

[자바 ORM 표준 JPA 프로그래밍] 08장. 프록시와 연관관계 관리

08장. 프록시와 연관관계 관리 08장. 프록시와 연관관계 관리 이번 장에서는 다음의 개념을 배우게 될 것입니다. 짧게 정리해볼게요. 프록시와 즉시로딩, 지연로딩 프록시라는 기술을 사용하게 되면 실제 사용되는 시점에 데이터베이스를 조회할 수 있습니다(지연로딩). 하지만 자주 사용되는 것은 미리 조인해서 함께 가지고 데이터 정보를 가지고 있는 것이 좋습니다(즉시로딩). 영속성 전이와 고아 객체 연관된 객체를 함께 저장하거나 함께 삭제할 수 있는 기능을 제공합니다. 프록시 예를들어 Member 객체와 Team 객체가 있고 N:1 관계로 연결되어 있다고 가정해봅시다. 그리고 회원 엔티티만 조회하는 상황일 경우, Team 속성을 사용하지 않는다면 굳이 회원 엔티티 가져올 때 연관된 Team 엔티티까지 가져올 필..

TIL

Today's Dev Notes(2019-01-01)

안녕하세요, Brad입니다. 오늘 공부한 내용 정리한 내용입니다. HTML에서 보낸 날짜 데이터(datetime-local타입) 파싱하기 기존 코드에 formatter가 있었고 bean으로 등록되어 있어 그것을 이용했었습니다. 하지만 html에서 datetime-local 타입으로 다시 한번 formatter를 이용해서 파싱을 하니 오류가 발생했습니다. 인터넷 검색에서 이렇게 하는 것을 보았는데 현재 제가 쓰고 있는 버전에서는 안되는 것 같습니다. 따라서 굳이 formatter를 사용하지 않고 datetime-local 타입으로 보냈기 때문에 해당 String값을 LocalDateTime.parse() 를 Converter 내에서 리팩토링 하였습니다. HandlerBar 에서 여러 개의 객체들이 중첩되어..

Algorithm/problem solving

Today's Algorithm(2019-01-01)

programmers. 구명보트 남들은 다 쉽게 푸는것 같은데 저는 왜 이렇게 그리디 문제가 감이 안올까요.. 처음엔 우선순위큐를 사용하여 가장 작은 몸무게를 찾은 다음 남은 사람들 중 무게제한을 초과하지 않는 사람들 중 가장 무거운 사람을 골랐습니다. 아무래도 남은 사람들 중 가장 무거운 사람을 찾는 과정에서 복잡도가 증가하였고 여러 테스트케이스에서 통과하지 못하였습니다. 이렇게 제일 큰 것 찾고 가장 작은 것도 동시에 찾기 위해선 우선순위큐 대신 리스트를 사용하고 포인터를 2개를 사용하면 됩니다(다 풀고나서 다른 사람들의 풀이를 보니 Deque도 많이 사용했더라구요. 어차피 똑같은 맥락이죠). 리스트를 오름차순 정렬하고 가장 작은(왼쪽) 수의 인덱스를 왼쪽(left), 가장 큰(오른쪽) 수의 인덱스를..

Algorithm/problem solving

Today's Algorithm(2018-12-31)

programmers. 큰 수 만들기 그리디(탐욕법) 문제라 그랬을까요. 무조건 큰 수를 먼저 골라내거나, 가장 작은 수를 빼내려고만 생각했던 것 같습니다. 탐욕법이 가장 유리해보이는 것을 가장 먼저 고려하는거잖아요. 그렇게 여러 가설을 세우고 이렇게 하면 모든 경우에 대해 적용이 될 수 있는지 탐험해보았습니다. 첫번째 가정 가장 작은수부터 지워나갑니다. 지울 수 있는 대상이 여러 개이고, 지울 수 있는 대상이 그 보다 작다면 앞의 수부터 지웁니다. 문제점 : "4177252841"와 같은 케이스를 걸러내지 못합니다. 두번째 가정 제일 큰 수부터 순서는 지키면서 앞의 순서대로 가져옵니다. 문제점 : 여전히 "4177252841"와 같은 케이스에서 문제이며 이때는 마지막 수 1이 문제입니다. 큰 수부터 가..

TIL

Today's Dev Notes(2018-12-31)

Today's Dev Notes 안녕하세요, Brad입니다. 오늘 공부한 내용 정리해볼게요. 객체지향 프로그래밍과 데이터베이스 자바 객체 1개와 DB테이블 1개와 매칭이 된다면 객체지향적인지 의심해봐야 합니다. 테이블 1개당 여러 개의 자바 객체가 매칭이 될 수 있어야 합니다. 해결방안 일급 콜렉션 적용 클래스에 인스턴스 변수로 하나의 콜렉션만 있는 것이 '일급 콜렉션'입니다. @Embeddable : 어디에 들어갈 수 있는 객체라는 표시입니다. @Embedded : 들어갈 곳을 말합니다. 이 안의 로직을 써넣을 수 있습니다. 일급 콜렉션 적용을 통해 하나의 Entity 안에 복잡도가 훨씬 줄어들 수 있습니다. 도메인 객체가 많아지면 어떻게 패키지 분리해야할까요? qna, user 또는 history 패..

Brad Lee
Brad's blog