본문 바로가기

Java3

[자바] 프로그래머스 - 피로도 / 공포의 백트래킹 알고리즘 정복하기 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 정답률 55%, Level2 난이도의 백트래킹 문제입니다. 문제 간단 분석 이 문제를 간단하게 분석해보자면 다음과 같습니다. 먼저 던전을 탐험하려면 나의 피로도가 '최소 필요 피로도' 만큼 있어야하고, 거기서 던전을 탐험하면 '소모 피로도'를 감소시킵니다. 매개변수로 들어오는 dungeons는 2차원 배열이고 요소 하나는 다음과 같습니다. {최소 필요 피도로, 소모 피로도} 이제 더 .. 2022. 11. 14.
클린코드에 대해서 알아보자 (리팩토링) 개발을 하다 보면 어느 포인트에서 클린코드라는 것을 접하게 됩니다. 대부분은 혼자 프로그래밍을 하면서 변수명, 함수명 혹은 로직 구조 설계에 대해 개개인적으로 습관이 굳어지게 됩니다. 따라서 사람마다 코드 스타일이 달라지게 되는데, 이는 협업할 때 타인이 코드 이해를 할 때 더 오랜 시간을 소모하게 됩니다. 따라서 개발자들은 클린코드를 작성하기 위해 노력해야 합니다. 클린코드 클린코드란 네이밍, 중복 제거, 하나의 역할만 수행하게 끔 코드를 작성해서 가독성이 높은 코드를 의미합니다. 즉, 위와 같은 조건으로 프로그래밍을 하면서 코드를 누구나 이해할 수 있는 것이 바로 클린코드를 의미합니다. 다음 예시를 통해 클린코드가 어떤 의미인지 조금 더 직관적으로 확인해보겠습니다. 기존 클린코드 적용 전 코드 p.. 2022. 11. 8.
[자바] 프로그래머스 - 스킬트리 https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 요약하자면 다음과 같습니다. 주어진 skill의 값이 "CBD" 라면, B를 스킬트리에 넣기 위해선 무조건 선행스킬인 C가 와야하고, D가 오려면 A,B 가 선행스킬로 와야합니다. 예시로 보자면 BACDE 같은 경우는 CBD의 순서가 아닌 BCD가 들어갔으므로 올바른 스킬트리가 아니지만 CBADF 같은 경우 CBD 순서로 왔기 때문에 올바른 스킬트리입니다. 이 문제를 풀기 위해서 저는 다음.. 2022. 11. 1.