1463번 - 1로 만들기
다른 분의 코드 전체를 그대로 복사해서 올리는 것은 안될 것 같아 부분만 올리겠습니다..
int d1 = solve(x / 3) + (x % 3) + 1;
재귀 함수 내에서 다들 (x % 3) 이 부분이 있는데 왜 이 코드가 나오게 된 것 인가요?
전 1000001 짜리 배열을 선언하고 문제를 풀었더니 풀긴 풀었는데 메모리를 너무 잡아먹네요;;
x%3번 "1을 뺀다" 시행을 하고 나서 "3으로 나눈다"를 하면 x/3이 되겠죠. 그걸 의미하는 겁니다.
예를들어 숫자가 5이면 1을빼고 4에서 2를 나눈다. 여기서 '1을뺀다'의 과정을 위해서 있는 것이 맞나요? '+1'은 n을 2이든 3이든 나눈 과정으로 가기때문에 한번 더하는 것이고
그런 듯 합니다. 제가 푼 방법이랑 달라서 저도 확실히는 모르겠지만요.
넵 감사합니다!
댓글을 작성하려면 로그인해야 합니다.
injoon2018 5년 전
다른 분의 코드 전체를 그대로 복사해서 올리는 것은 안될 것 같아 부분만 올리겠습니다..
int d1 = solve(x / 3) + (x % 3) + 1;
재귀 함수 내에서 다들 (x % 3) 이 부분이 있는데 왜 이 코드가 나오게 된 것 인가요?
전 1000001 짜리 배열을 선언하고 문제를 풀었더니 풀긴 풀었는데 메모리를 너무 잡아먹네요;;