글
프로그래머스 레벨2 숫자 변환하기 C# (완전탐색)
C#
using System;
using System.Collections.Generic;
public class Solution {
public int solution(int x, int y, int n)
{
int answer = 0;
int value = 0;
int tempValue = 0;
Queue<int> currentValuesQu = new Queue<int>();
bool[] visited = new bool[y + 1];
if (x == y)
return 0;
currentValuesQu.Enqueue(x);
while (currentValuesQu.Count != 0)
{
int size = currentValuesQu.Count;
for (int iPos = 0; iPos < size; iPos++)
{
value = currentValuesQu.Dequeue();
tempValue = value * 3;
if (tempValue <= y && visited[tempValue] == false)
{
currentValuesQu.Enqueue(tempValue);
visited[tempValue] = true;
}
tempValue = value * 2;
if (tempValue <= y && visited[tempValue] == false)
{
currentValuesQu.Enqueue(tempValue);
visited[tempValue] = true;
}
tempValue = value + n;
if (tempValue <= y && visited[tempValue] == false)
{
currentValuesQu.Enqueue(tempValue);
visited[tempValue] = true;
}
}
answer++;
if (currentValuesQu.Contains(y))
return answer;
}
return -1;
}
}
'프로그래밍' 카테고리의 다른 글
프로그래머스 레벨2 삼각 달팽이 C#, JAVA (0) | 2023.03.28 |
---|---|
프로그래머스 레벨1 둘만의 암호 C#, JAVA(아스키코드) (0) | 2023.03.26 |
프로그래머스 레벨2 프린터 C#(큐, queue) (0) | 2023.02.26 |
프로그래머스 레벨2 무인도 여행(JAVA) dfs (0) | 2023.02.26 |
프로그래머스 레벨1 문자열 나누기 C#(JAVA) (0) | 2023.02.24 |