교육과정_기록

개발자 교육을 듣고 있는 당신을 위해[3] - 잔디 심기 외

itsnot4me 2025. 6. 11. 22:03

누군가 내게 물었다 깃헙 잔디 '날로 먹었다' 는게 무슨 의미인지

 

주로 텅 빈 커밋이 있겠지만 그건 사실 0점 미만의 어떤 점수이고

양심통으로 사망할 수 있다

(웹툰 <펀치드렁크드> 중)

 

이걸로 하면 된다

 

설치 방법을 설명하는건 블로그 한 단락을 날로 먹는 또 0점 미만의 어떤 행위를 하는 거기도 하고

간단히 설명하면 코딩 테스트 한 문제 풀면 깃허브에 커밋해주는 것

제목에는 백준만 들어있지만 프로그래머스도 된다

 

이런 식으로 정리된다 3까지밖에 없는건 내 실력 부족이고

 

휴일과 프로젝트 집중 기간을 제외한 기간에는 심었다

 

본인이 성실한 느낌을 스스로 받을 수 있기 때문에 다른 일에도 도움이 될 것이다

마치 닭가슴살 대신 닭날개로 단백질을 채우는 헬서와 같은 기분을 느낄 수 있다 

 

*

 

프로그래머스 - 코딩테스트 - 알고리즘 고득점 KIT

 

어제에 이어 DFS/BFS 문제 풀이를 진행했고 이제 빨리 풀 수 있겠다는 생각이 드는 지금

이제 다른 유형도 하나씩 늘려갈 수 있을 것 같다는 생각이 든다

 

https://school.programmers.co.kr/learn/courses/30/lessons/43165

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

DFS/BFS에서 lv.2에 숨겨져 있는 한층 더 쉬운 문제(였어야 했다)

 

class Solution {
    int answer = 0;
    public int solution(int[] numbers, int target) {
        getPlusorMinus(numbers, target, 0, 0); 
      
        return answer;
    }
    void getPlusorMinus(int[] numbers, int target, int index, int sum)
    {
        if(index == numbers.length){
            if(sum == target){
                answer++;

            }
                            return;
        }
        
        getPlusorMinus(numbers, target, index + 1, sum + numbers[index]);
        getPlusorMinus(numbers, target, index + 1, sum - numbers[index]);
    }
}

 

총 갯수 = 모든 걸 탐색해야됨 (경로 자체의 특징 및 최종 결과값 저장) 

DFS = 메서드 재귀로 풀기

메서드 1 = 배열 요소(시작점 1씩 증가) 관해서 전부 다 더하기
메서드 2 = 배열 요소(시작점 1씩 증가) 관해서 전부 다 빼기

 

실수한 점 1.

라고 잠깐 생각했는데 그럴 필요는 없고 메서드의 변수를 하나씩 갈래로 늘려가는 방식을 취하면 된다

 

실수한 점 2.

'전부' 라는 표현이 실수한게 남은 배열을 전부 더하는 방식을 취해서 값이 너무 튀었었다

DFS 문제 특징은 실제로 펜 주고 잠깐 본인이 한 메서드를 2차, 3차까지 어떻게 뻗어나가나를 한번 그려보기만 해도 뭐가 문제인지 알 수 있다

 

그 잔재로 PlusorMinus라는 이름이 나온것..

 

내일은 동적 계획법 1문제와 DFS/BFS 한문제를  

 

*

 

사실은 최근 이틀간 카카오페이 API를 활용해서 결제 시스템 구현을 했는데, 깃에 올려놓지 않았다는 점이 아쉽다

캡쳐 화면이라도 띄워 놨다면 더 좋은 글을 쓸 수 있었을텐데 아주 빠른 시일 내에 어떻게 기능하는지 설명하고 인증하도록 하겠다