본문 바로가기

반응형

DEVELOPER/DS & Algorithms

(41) PORTFOLIO GITHUB 방명록
[프로그래머스/JAVA] Level 1, 완주하지 못한 선수 (42576) DEVELOPER/DS & Algorithms / 2022. 10. 17. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 프로젝트가 끝나고, 오랜만에 문제 풀이 글을 올립니다. 이번은 백준이 아닌, 프로그래머스를 도전하게 되었는데요. 어느정도에 난이도일지 몰라서 Level1부터 시작하고 있습니다. 하지만 오랜만이여서 그런지 쉽지 않네요 😂꾸준함에 중요성을 뼈저리게 느끼게 되었습니다. (Level1 / 42576) 완주하지 못한 선수 1) Problem 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요..
[백준] 깊이 우선 탐색_24479,24480_자바 DEVELOPER/DS & Algorithms / 2022. 8. 11. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 [깊이 우선 탐색] 이라는 문제를 포스팅하려고 합니다. 그래프와 관련된 문제를 해결할 때, 두 가지의 해결법이 있습니다. 첫 번째는 깊이 우선 탐색(Depth-First Search)이고, 두 번째는 너비 우선 탐색(Breadth-First Search)입니다. 이번 문제는 깊이 우선 탐색의 개념을 이해할 수 있도록 만들어졌습니다. 24479번 깊이 우선 탐색1 문제는 오름차순으로 인접 정점에 방문하는 방식이고, 24480번 깊이 우선 탐색2 문제는 내림차순으로 인접 정점에 방문하는 방식입니다. 따라서 두 문제를 풀이하는 방법은 크게 차이가 없습니다. 24479번 문제의 자세한 점은 아래 링크를 참고해주세요. https://www.acmicpc.net/..
[백준] 포도주 시식_2156_자바 DEVELOPER/DS & Algorithms / 2022. 8. 10. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘 포스팅은 백준의 2156번 포도주 시식 문제를 정리하려고 합니다. 이 문제는 동적 계획법에 해당하는 문제로, 동적 계획법 풀이 전략을 이해하고 있으면 어렵지 않게 풀 수 있습니다. 반대로 말하면, 동적 계획법의 개념을 제대로 알 수 있는 문제라 할 수 있겠습니다. 저 또한 해당 문제를 풀면서 동적 계획법에 대해서 다시 이해할 수 있게 되었습니다. 문제의 자세한 내용은 아래 링크를 참고해주세요. https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 ..
[백준] 프린터 큐_1966_자바 DEVELOPER/DS & Algorithms / 2022. 7. 29. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 카테고리 큐에 해당하는 문제 [프린터 큐]에 대해서 포스팅하도록 하겠습니다. 난이도가 그렇게 높은 문제는 아닙니다. 큐만 잘 활용한다면, 간단한 문제인데요. 저는 문제를 제대로 이해하지 못한 탓에 꽤나 애먹었습니다. 문제에 대한 자세한 정보는 아래 링크에 있습니다. https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net Problem 독특한 프린터 기기가 있습니다. 이 프린터 기기는 중요도에 따라서 문서..
[백준] 평범한 배낭 (DP)_12865_자바 DEVELOPER/DS & Algorithms / 2022. 7. 3. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 백준의 문제 풀이를 포스팅하려고 합니다. 12865번에 해당하는 문제로, 동적 계획법의 대표적인 문제인 평범한 배낭입니다. 자세하게는 배낭 안에 어떤 물건들을 넣었을 때 최고의 가치를 갖는지 알아보는 문제입니다. 이러한 배낭 문제는 풀이법이 두 가지로 나뉩니다. 첫 번째는 물건을 쪼갤 수 있다고 가정했을 때입니다. 이때는 gready(탐욕) 알고리즘을 통해서 최적의 방법을 찾을 수 있습니다. 두 번째는 물건을 쪼갤 수 없을 때 사용하는 풀이 전략인 동적 계획법 전략입니다. 두 번째 풀이가 오늘 설명할 방식이죠. 이제 문제를 보면서 자세하게 설명하도록 하겠습니다. https://www.acmicpc.net/problem/12865 12865번: 평범한 배..
[알고리즘] 백트래킹(backtracking) 알아보기(& N-Queen 문제 풀이) DEVELOPER/DS & Algorithms / 2022. 6. 20. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘 알아볼 내용은 백트래킹(Backtracking) 알고리즘입니다. 해당 개념은 전에 다루었던, [동적 계획법과 분할 정복]과 동일하게 문제를 푸는 전략이라고 할 수 있습니다. 자세한 내용은 아래에서 다루도록 하겠습니다. 추가로 백트래킹의 대표적인 문제인 이라는 문제를 풀어보면서 더 자세하게 이해하도록 하겠습니다. 01. 백트래킹(Backtracking) 01) 백트래킹이란? 백트래킹은 모든 경우의 수를 고려하여 해를 찾는 방식입니다. 이름에서 유추할 수 있듯이, 퇴각 검색(추적)이라는 의미를 갖습니다. 즉, 해를 찾기 위해서 후보군을 나열하고, 제약 조건을 점진적으로 체크합니다. 만약 조건에 맞지않다면, 뒤로 돌아와서(backtrack), 바로 다음 후보군..

반응형