알고리즘/Greedy Algorithm

[프로그래머스] 12980 : 산모양타일링 [JAVA] Lv.2

개발하는 동그리 2025. 4. 13. 12:29
728x90
반응형

프로그래머스

 

문제 풀이 설명 (summary)
  • 짝수인 경우 무조건 나누기
  • 홀수인 경우 -1 이동
  • 0이 될 때까지 반복

 

문제 풀이 접근법
  • 그리디 알고리즘(Greedy Algorithm)
  • 모든 상황에 순간이동이 무조건 우선적으로 실행하면 됨.
  • 현재 상황에 최적화 된 풀이로 진행

 

풀이 코드 (Code)
public class Main {

    public static void main(String[] args) {
        int N = 6;
        System.out.println(solution(N));
    }

    private static int solution(int s) {
        int ans = 0;
        while (s > 0) {
            if (s % 2 == 0) {
                s /= 2; // 순간이동
            } else {
                s -= 1; // 점프 (건전지 사용)
                ans++;  // 사용량 증가
            }
        }
        return ans;
    }
}

 

문제 링크 (Link)
https://school.programmers.co.kr/learn/courses/30/lessons/12980

 

728x90
반응형