Social Developer
Home
  • 분류 전체보기 (121)
    • Life (3)
    • Idea note (0)
    • Algorithms (84)
    • CS (16)
      • Data Structure (7)
      • Network (9)
    • Skill (13)
      • Spring (0)
      • Java (9)
      • Infra (3)
      • Etc. (1)
Home
  • 분류 전체보기 (121)
    • Life (3)
    • Idea note (0)
    • Algorithms (84)
    • CS (16)
      • Data Structure (7)
      • Network (9)
    • Skill (13)
      • Spring (0)
      • Java (9)
      • Infra (3)
      • Etc. (1)
블로그 내 검색

Social Developer

어제보다 한 걸음 더

  • Algorithms

    [백준 알고리즘] (DP) 1463번 Java 풀이

    2020. 3. 10.

    by. SDev

    728x90

    DP - 1463, 11726, 11727, 9095, 10844, 11057, 2193, 9465, 2156, 11053, 11055, 11722, 11054, 1912, 2579, 1699, 2133, 9461, 2225, 2011, 11052

    출처: https://plzrun.tistory.com/entry/알고리즘-문제풀이PS-시작하기 [plzrun's algorithm]

     

    백준 알고리즘 1463번

     

    change Nxxxx -> Main && remove package lines!!!

    이클립스에서 작성하면서 문제 이름으로 클래스를 생성하여 풀었기 때문에

    클래스 이름을 Main으로 바꾸고, package 부분도 지우고 제출해야 정상적으로 돌아갑니다.

     

    <풀이> - Bottom up

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    package dp;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
     
    public class N1463 {
     
        public static void main(String[] args) throws NumberFormatException, IOException {
     
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int num = Integer.parseInt(br.readLine());
            int dp[] = new int[num+1]; //입력 값보다 하나 더 큰 사이즈로 생성
            dp[0] =0;
            dp[1] =0;
            
            for(int i =2; i<= num; 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[num]);
            br.close();
        }
     
    }
     
    Colored by Color Scripter
     

     

     

     

    <풀이> - Top down

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    package dp;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
     
    public class N1463_2 {// Top Down
     
        public static int d[];
        public static void main(String[] args) throws NumberFormatException, IOException {
            
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int num = Integer.parseInt(br.readLine());
            d = new int[num+1];
            System.out.println(calculate(num));
        }
     
        
        public static int calculate(int num) {
            if(num == 1) {
                return 0;
            }
            if(d[num]>0) {
                return d[num];
            }
            d[num] = calculate(num-1)+1;
            if(num%3 ==0) {
                d[num] = Math.min(d[num], calculate(num/3)+1);
            }
            if(num%2 ==0) {
                d[num] = Math.min(d[num], calculate(num/2)+1);
            }
            
            
            return d[num];
        }
    }
     
    Colored by Color Scripter
     

     

     

    풀다가 예제 2인 입력:10 case에서 막혀서 헤매다가

    결국 다른 분의 풀이를 보고 풀었다.

    https://odysseyj.tistory.com/19

    아예 입력값을 넣는 방식도 buffer와 stream을 사용해서 넣는 방법으로 내게는 낯선 방식이라

    익숙해지면 좋겠다 싶다.

     

    기본적으로는 풀이 접근법에 익숙해지는 노력이 많이 필요할 것 같다.

    두고두고 다시 풀어봐야지 ㅠㅠ..

     

    Github: https://github.com/jaeuk9407/AlgorithmBOJ

     

    jaeuk9407/AlgorithmBOJ

    BaekJoon Online Judge Problems. Contribute to jaeuk9407/AlgorithmBOJ development by creating an account on GitHub.

    github.com

     

    저작자표시 (새창열림)

    'Algorithms' 카테고리의 다른 글

    [백준 알고리즘] (DP) 11727번 Java 풀이  (0) 2020.03.11
    [백준 알고리즘] (DP) 11726번 Java 풀이  (0) 2020.03.11
    [백준 알고리즘] (I/O) 10992번 Java 풀이  (0) 2020.03.09
    [백준 알고리즘] (I/O) 10991번 Java 풀이  (0) 2020.03.09
    [백준 알고리즘] (I/O) 2446번 Java 풀이  (0) 2020.03.09

    댓글

    관련글

    • [백준 알고리즘] (DP) 11727번 Java 풀이 2020.03.11
    • [백준 알고리즘] (DP) 11726번 Java 풀이 2020.03.11
    • [백준 알고리즘] (I/O) 10992번 Java 풀이 2020.03.09
    • [백준 알고리즘] (I/O) 10991번 Java 풀이 2020.03.09
    맨 위로
전체 글 보기
  • 인정님 블로그
  • 성현님 블로그
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
SDev

티스토리툴바