inblog logo
|
LHS's Study Space
    알고리즘문제풀기C#

    [알고리즘 문제 풀기] A → B(16953)

    C#
    lhs's avatar
    lhs
    Mar 04, 2025
    [알고리즘 문제 풀기] A → B(16953)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    www.acmicpc.net
    https://www.acmicpc.net/problem/16953
    notion image

    1. 문제 풀이 아이디어

    • b가 짝수라면 2로 나누고, 끝자리가 1이라면 10으로 나누는 방식으로 문제를 해결한다.

    2. 나의 정답 코드

    using (StreamReader sr = new StreamReader(Console.OpenStandardInput())) using (StreamWriter sw = new StreamWriter(Console.OpenStandardOutput())) { string[] split = sr.ReadLine().Split(); int a = int.Parse(split[0]); int b = int.Parse(split[1]); int result = 1; while (b > a) { if (b % 2 == 0) { b /= 2; } else if (b % 10 == 1) { b = (b - 1) / 10; } else { break; } result++; } sw.WriteLine(a == b ? result : -1); }

    3. 정리

    • b가 짝수일 경우 2로 나누고, 끝자리가 1이라면 10으로 나눈다.
    • 변환 횟수를 증가시키고, 더 이상 변환이 불가능하면 반복을 종료한다.
    • a와 b가 같으면 변환 횟수를 출력하고, 그렇지 않으면 -1을 출력한다.
    Share article

    LHS's Study Space

    RSS·Powered by Inblog