Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Archives
Today
Total
관리 메뉴

csct3434

[level 2] 숫자 변환하기 - 154538 본문

프로그래머스

[level 2] 숫자 변환하기 - 154538

csct3434 2024. 3. 17. 16:02

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.*;

class Solution {

    public int solution(int x, int y, int n) {
        Set<Integer> visited = new HashSet<>();
        Queue<int[]> queue = new LinkedList<>();

        queue.add(new int[]{x, 0});
        while (!queue.isEmpty()) {
            int[] info = queue.poll();
            int number = info[0], count = info[1];
            int[] nextNumbers = new int[]{number + n, number * 2, number * 3};

            if (number == y) {
                return count;
            }

            for (int nextNumber : nextNumbers) {
                if (nextNumber <= y && !visited.contains(nextNumber)) {
                    visited.add(nextNumber);
                    queue.add(new int[]{nextNumber, count + 1});
                }
            }
        }

        return -1;
    }
}

'프로그래머스' 카테고리의 다른 글

[level 3] 단어 변환 - 43163  (0) 2024.03.17
[level 3] 네트워크 - 43162  (0) 2024.03.17
[level 3] 단속카메라 - 42884  (0) 2024.03.17
[level 3] 섬 연결하기 - 42861  (0) 2024.03.17
[level 3] 이중우선순위큐 - 42628  (0) 2024.03.17