쵼쥬
쵼쥬의 개발공부 TIL
쵼쥬
전체 방문자
오늘
어제
  • 분류 전체보기 (276)
    • 코딩테스트 (192)
      • [알고리즘] 알고리즘 정리 (7)
      • [백준] 코딩테스트 연습 (126)
      • [프로그래머스] 코딩테스트 연습 (59)
    • Spring (71)
      • [인프런] 스프링 핵심 원리- 기본편 (9)
      • [인프런] 스프링 MVC 1 (6)
      • [인프런] 스프링 MVC 2 (4)
      • [인프런] 실전! 스프링 부트와 JPA 활용1 (7)
      • [인프런] 실전! 스프링 부트와 JPA 활용2 (5)
      • [인프런] 실전! 스프링 데이터 JPA (7)
      • [인프런] 실전! Querydsl (7)
      • JWT (5)
      • [인프런] Spring Cloud (17)
      • [인프런] Spring Batch (4)
    • Java (6)
      • [Java8] 모던인자바액션 (4)
      • [부스트코스] 웹 백엔드 (2)
      • [패스트캠퍼스] JAVA STREAM (0)
    • CS (6)
      • 디자인 패턴과 프로그래밍 패터다임 (2)
      • 네트워크 (4)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 타임리프
  • querydsl
  • 백분
  • BFS
  • 구현
  • 프로그래머스
  • 부스트코스
  • 코딩테스트
  • 자바
  • MVC
  • jpa
  • 비트마스킹
  • 알고리즘
  • 인프런
  • Spring Data JPA
  • 백준
  • 스프링
  • spring
  • 누적합
  • 위클리 챌린지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쵼쥬

쵼쥬의 개발공부 TIL

1로 만들기 - 1463번
코딩테스트/[백준] 코딩테스트 연습

1로 만들기 - 1463번

2021. 9. 29. 14:31


풀이 방법 생각

DP 문제로 점화식을 생각해야 했다. 

일단 0과 1은 0번으로 고정이라서 값을 넣어주었다.

Bottom-up 방식으로 2부터 n까지 계산해 주었다.

 

  1. 이전 수에서 1을 더하는 경우를 생각해서 이전 수의 횟수에서 1을 더해주는 경우
  2. 2로 나누어 떨이지기 때문에 2로 나눈 수의 횟수에 1을 더하는 경우
  3. 3으로 나누어 떨어지기 때문에 3으로 나눈 수의 횟수에 1을 더하는 경우

 

이 세가지를 비교해서 최솟값을 만들어 주었다.

 

내 코드

package com.company;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int n = Integer.parseInt(st.nextToken());

        int[] dp = new int[n + 1];
        dp[0] = dp[1] = 0;

        for (int i = 2; i <= n; i++) {
            dp[i] = dp[i - 1] + 1;
            if (i % 2 == 0)
                dp[i] = Math.min(dp[i], dp[i / 2] + 1);
            if (i % 3 == 0)
                dp[i] = Math.min(dp[i], dp[i / 3] + 1);
        }

        System.out.println(dp[n]);
    }

}

 

'코딩테스트 > [백준] 코딩테스트 연습' 카테고리의 다른 글

최단경로 - 1753번  (0) 2021.10.01
동전 2 - 2294번  (0) 2021.09.29
트리의 부모 찾기 - 11725번  (0) 2021.09.24
나는야 포켓몬 마스터 이다솜 - 1620번  (0) 2021.09.23
요세푸스 문제 - 1158번  (0) 2021.09.23
    '코딩테스트/[백준] 코딩테스트 연습' 카테고리의 다른 글
    • 최단경로 - 1753번
    • 동전 2 - 2294번
    • 트리의 부모 찾기 - 11725번
    • 나는야 포켓몬 마스터 이다솜 - 1620번
    쵼쥬
    쵼쥬

    티스토리툴바