yuio1213   2년 전

분명 코드플러스 강의에서 나온대로 했는데 왜 틀렸습니다가 뜰까요 ㅜㅠ

고수님들의조언 부탁드립니다. 

#include<stdio.h>
int d[1000000];
int go(int n) {
   if (n == 1) return 0; // 1 이면 0반환 --> 한가지 예외사항
   if (d[n] > 0) return d[n]; //memorization 
   d[n] = go(n - 1) + 1;
   if (n % 2 == 0) {
      int temp = go(n / 2) + 1;
      if (d[n] > temp) d[n] = temp;
   }
   if (n % 3 == 0) {
      int temp = go(n / 3) + 1;
      if (d[n] > temp) d[n] = temp;
   }
   return d[n];
}
int main() {
   int x, n;
   scanf("%d", &x);
   n = go(x);
   printf("%d", n);
}

djm03178   2년 전

카테고리를 질문으로 설정하면, 문제 번호를 적는 칸도 생기고, 코드를 깔끔하게 적을 수 있는 칸도 있습니다.

https://www.acmicpc.net/board/... 여기에 해답이 있습니다.

댓글을 작성하려면 로그인해야 합니다.