전체 글

전체 글

    자바(Java) 알고리즘 문제풀이 동전0 [백준 / 그리디]

    11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 풀이 코드 전형적인 그리디 문제로 가능한 큰 동전으로 연산하며 가능한 최소한의 동전 갯수를 구하는 문제이다. 그리디로 접근 시 주의해야할 점이 있는데, 문제 설명을 보면 (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 라고 명시 되어있는 것을 볼 수 있다. 쉽게 말하자면 각 동전의 가치는 서로 배수관계에 있다는 뜻이며 이 입력이 보장되기 때문에 그리디로..

    자바(Java) 알고리즘 문제풀이 씨름 선수 [인프런 / 그리디]

    강의의 문제를 가져왔기 때문에 밝힙니다 ! 임의로 추가, 수정, 삭제한 내용들이 있으니 정확한 이해를 위해서는 강의를 구매하시는 것을 추천드립니다 😅 출처 : 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 (인프런 강의) 풀이 코드 그리디 섹션에 있는 문제이기 때문에 당연히 그리디로 풀어야하는건 알고있지만, 왜 이 문제가 그리디인가에 대해 생각을 했다. 미래를 따지지 않고 현재 선택할 수 있는 가장 좋은 것만을 선택하며 최적의 해를 뽑아내는 알고리즘이 그리디 알고리즘의 정의라고 알고 있는데, 그냥 이 문제에서는 간단한 아이디어를 통한 구현 문제라고 느껴졌다. 왜 굳이 그리디로 분류했는지는 의문이다 ,, ㅎㅎ 문제에서 지원자를 뽑는 기준으로, - 지원자 1명을 다른 모든 지원자와 비교해서 키와 몸무..

    2022.08.08 (월요일) ~ 2022.08.12 (금요일) 주간 및 일일 학습계획

    주간목표 2022.08.08 ~ 2022.08.12 Issue Tracker 프로젝트 5주차 진행 컨디션 관리 알고리즘 스터디 진행 (월요일) 알고리즘 실전 모의고사 진행 (화요일) 프로젝트 마무리 및 회의 일일목표 2022.08.08 (월요일) Issue API 수정 및 리팩토링 알고리즘 스터디 진행 (DFS) WIKI 에 일일회고 작성 고시원 입주 일일목표 2022.08.09 (화요일) 자신이 댓글을 작성한 Issue Read API 개발 Issue API 에서 사용하는 Parameter 검증 Milestone Json 데이터 수정 알고리즘 실전 모의고사 진행 일일목표 2022.08.10 (수요일) 모든 컨트롤러 도메인에 /api prefix 추가 커스텀 예외 클래스 생성 후 GlobalHandler..

    [Issue Tracker Project] Object Mapper 에서 @Getter 와 기본 생성자의 역할 ?

    기록 이유 팀원들과 Issue Traker 프로젝트를 진행하며 여러 DTO 클래스를 활용해 API 를 개발하고 있다. 값을 바인딩 할 때 사용하는 Request 관련 DTO, 서버에서 Json 데이터를 만들어 응답하는 Response 관련 DTO 로 나눠서 DTO 를 사용하고 있는데, 너무 무분별하게 롬북 라이브러리 어노테이션을 사용한다는 생각이 들었다. 이에 호기심이 생겨 구글링을 하며 궁금했던 부분들을 기록하기 위해 포스트를 작성하게 되었다 😀 기록 시작 ~ Jackson ? 우린 SpringBoot 를 사용하면서 객체를 Json 으로 변환할 때, 그리고 Json 을 객체로 변환할 때 Jackson 라이브러리를 사용하게 된다. Jackson 은 Json 데이터 구조를 처리할 수 있도록 도와주는데, s..

    2022.08.01 (월요일) ~ 2022.08.05 (금요일) 주간 및 일일 학습계획

    주간목표 2022.08.01 ~ 2022.08.05 Issue Tracker 프로젝트 4주차 진행 컨디션 관리 WIKI 에 일일회고 작성 알고리즘 스터디 진행 (화요일) 알고리즘 실전 모의고사 진행 (목요일) 남은 Issue API 전체적으로 구현 완료 일일목표 2022.08.01 (월요일) Issue API 에서 사용하는 DTO 수정 Jackson 의 ObjectMapper 에 대해 공부하고 블로그 글 작성 Request, Response DTO 에 사용한 롬북 어노테이션에 대해 이해하고 사용하도록 공부 후 수정 모든 기본생성자는 Private 하게 생성, 정적 팩토리 메소드 사용 DTO 는 @AllArgsConstructor 을 사용하도록 수정 RequestSaveIssueDto Validation ..

    2022.07.25 (월요일) ~ 2022.07.29 (금요일) 주간 및 일일 학습계획

    주간목표 2022.07.25 ~ 2022.07.29 Issue Tracker 프로젝트 3주차 진행 컨디션 관리 WIKI 에 일일회고 작성 알고리즘 실전 모의고사 진행 (목요일) 일일목표 2022.07.25 (월요일) 급성 알러지로 인한 강제 휴식 .. 일일목표 2022.07.26 (화요일) Auditing 추가로 인한 Issue Tracker Milestone Controller, Service 수정 Issue RUD API 개발 시작 Issue Entity 에 Label, Assignee 값이 모두 Null 로 셋팅되는 문제 발생. 해결방안으로 Label, Assignee 가 아닌 연결 테이블 IssueLabel, IssueAssignee 의 Repository 를 새로 만들고 이쪽에서 findAll(..

    자바(Java) 알고리즘 문제풀이 같은 숫자는 싫어 [프로그래머스 / Stack]

    문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 ..

    자바(Java) 알고리즘 문제풀이 공주 구하기 [인프런 / Queue]

    강의의 문제를 가져왔기 때문에 밝힙니다 ! 임의로 추가, 수정, 삭제한 내용들이 있으니 정확한 이해를 위해서는 강의를 구매하시는 것을 추천드립니다 😅 출처 : 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 (인프런 강의) 1) 공주 구하기 수건 돌리기와 비슷한? 문제였다. N 명의 사람 중 K 라는 특정 수를 외치면 그 사람은 빠지고 한 사람이 남을 때 까지 이어서 진행, 그 사람을 구해내면 되는 간단한 문제였다. 예를 들어 N = 4 / K = 2 라면, [1, 2, 3, 4] -> [1, 3, 4] -> [1, 3] -> [1] 로 진행되어 1번 사람이 마지막에 남게된다. 헷갈렸던 부분은 특정 수를 외친 사람이 빠지고 다시 1부터 세야하는 부분 ? 이 조금 헷갈렸지만, Queue 를 사용해 특..

    자바(Java) 알고리즘 문제풀이 쇠막대기 [인프런 / Stack]

    강의의 문제를 가져왔기 때문에 밝힙니다 ! 임의로 추가, 수정, 삭제한 내용들이 있으니 정확한 이해를 위해서는 강의를 구매하시는 것을 추천드립니다 😅 출처 : 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 (인프런 강의) 1) 쇠막대기 문제를 처음 봤을 땐 길기도 하고 복잡하게 보여서 꽤나 긴장했었는데, 차근차근 그림을 그려가며 보니 Stack 을 사용한다면 꽤나 간단히 풀 수 있는 문제였다. 열린 괄호를 계속해서 넣어주다가 닫힌 괄호가 등장했을 때 레이저가 만들어지는지 막대기가 나오는지 구별하면 된다. 처음 시도에서는 stack.peek() 을 활용해 풀이했는데 틀려서 디버깅 후 겨우 원인을 찾을 수 있었는데 ,, 1-1) peek() 을 활용한 첫번째 풀이 (오답) 닫힌 괄호가 등장했을 때, ..

    2022.07.18 (월요일) ~ 2022.07.24 (일요일) 주간 및 일일 학습계획

    주간목표 2022.07.18 ~ 2022.07.24 Issue Tracker 프로젝트 2주차 진행 API 개발 시 테스트 코드 꼭 작성 Issue Tracker 삽질 기록하기 컨디션 관리 WIKI 에 일일회고 작성 일일목표 2022.07.18 (월요일) Issue Tracker Issue Save 테스트 코드 작성 Issue Tracker Milestone Save 코드 및 테스트 코드 작성 알고리즘 스터디 (자료구조 스택/큐 / 5-4, 5-5, 5-6 문제 풀이) 후 블로그 글 작성 WIKI 에 일일회고 작성 일일목표 2022.07.19 (화요일) 알고리즘 실전 모의고사 스터디 (시작 전에 스택/큐 간단하게 다시 복습) WIKI 에 일일회고 작성 일일목표 2022.07.20 (수요일) Issue Tr..