티스토리 뷰
반복문으로 차례차례 작은 값부터 원하는 값까지 구하되, 이전 값을 이용하여 최솟값을 계속 찾아 결과적으로 원하는 값의 최솟값을 구한다.
당연하지만 두번째 if문을 else if로 쓰면 안된다.
static void Main(string[] args)
{
int[] a = new int[1000001];
//index 0은 사용하지 않는다.
string s = Console.ReadLine();
int n = int.Parse(s);
for(int k = 2; k<=n; k++)
{
a[k] = a[k - 1] + 1;
if (k % 2 == 0)
a[k] = Math.Min(a[k], a[k / 2] + 1);
if (k % 3 == 0)
a[k] = Math.Min(a[k], a[k / 3] + 1);
}
Console.WriteLine(a[n]);
}
}
'■ 알고리즘 > ◻ 백준' 카테고리의 다른 글
| [C#]백준 10823번 : 더하기 2 (0) | 2018.08.09 |
|---|---|
| [C#]백준 10820번 : 문자열 분석 (0) | 2018.08.09 |
| [C#]백준 1152번 : 단어의 개수 (0) | 2018.08.07 |
| [C#]백준 10824번 : 네 수 (0) | 2018.08.07 |
| [C#]백준 9095번 : 1, 2, 3 더하기 (0) | 2018.08.07 |