백준 14626번 - ISBN (C#)

김보근·2025년 6월 16일

백준

목록 보기
34/62

📘 백준 14626번 - ISBN (C#)

오늘은 ISBN 검증 숫자를 찾는 문제를 풀어봤다.
문자열 중 한 자리가 *로 가려져 있을 때, 그 자리에 들어갈 수 있는 숫자를 찾아야 한다.

https://www.acmicpc.net/problem/14626

🔍 문제 요약

ISBN은 총 13자리 숫자.

검증 방식은 아래와 같다:

1. 앞의 12자리 중
   - 홀수 번째 자릿수: 그대로 더함
   - 짝수 번째 자릿수: 3을 곱해서 더함
2. 총합을 10으로 나눈 나머지를 구함
3. 검증 숫자 = 10 - 나머지 (단, 결과가 10이면 0으로 처리)

🔄 풀이 로직
입력 문자열에서 * 위치를 찾는다.

0부터 9까지 숫자를 넣어보고,

그 숫자가 들어간 ISBN이 유효하면 출력한다.

✅ 최종 코드 (C#)

using System;

class Program
{
    static void Main()
    {
        string isbn = Console.ReadLine();
        int starIndex = isbn.IndexOf('*');

        for (int i = 0; i <= 9; i++)
        {
            string temp = isbn.Substring(0, starIndex) + i + isbn.Substring(starIndex + 1);
            int sum = 0;

            for (int j = 0; j < 12; j++)
            {
                int digit = temp[j] - '0';
                if ((j + 1) % 2 == 1) // 홀수 위치
                    sum += digit;
                else // 짝수 위치
                    sum += digit * 3;
            }

            int checkDigit = (10 - (sum % 10)) % 10;

            if (checkDigit == temp[12] - '0')
            {
                Console.WriteLine(i);
                break;
            }
        }
    }
}

✍️ 마무리

문자열에서 특정 자리를 바꾸는 방법, 검증 로직을 구현하는 흐름 등
간단하지만 중요한 기초를 연습할 수 있는 문제였다.
문자열과 인덱스를 다루는 감각을 더 키워야겠다!

profile
게임개발자꿈나무

0개의 댓글