본문 바로가기
알고리즘/백준 BOJ

[BOJ C#] 4796 캠핑

by 왹져박사 2023. 2. 1.
728x90

처음에 쉬워보여서 구조 자체는 빨리 짰지만 함정이 있던 문제. +오타, \n 조심

using System;
using System.Text;
using System.IO;

namespace _4796
{
    class Program
    {
        static void Main()
        {
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
            StringBuilder sb = new StringBuilder();

            int caseN = 0;
            int result = 0;
            while (true)
            {
                if (caseN > 0)
                {
                    sb.AppendFormat("Case {0}: {1}", caseN, result);
                    result = 0;
                }

                string[] str = sr.ReadLine().Split();

                int l = int.Parse(str[0]);
                int p = int.Parse(str[1]);
                int v = int.Parse(str[2]);
                if (l == 0 && p == 0 && v == 0)
                {
                    break;
                }
                else if (caseN > 0)
                    sb.AppendLine();

                while (v != 0)
                {
                    if (v >= p)
                    {
                        v -= p;
                        result += l;
                    }
                    else if (v < p && v > l)
                    {
                        result += l;
                        v = 0;
                    }
                    else
                    {
                        result += v;
                        v = 0;
                    }
                }
                caseN++;
            }
            sw.WriteLine(sb);

            sr.Close();
            sw.Flush();
            sw.Close();
        }
    }
}

v의 값이 p보다 작지만 l보다 클 때, v를 더하는것이 아닌 l을 더해주어야 모든 케이스의 답이 나온다. 

+다른분들의 코드는 나머지연산을 이용, 고쳐보기

728x90

'알고리즘 > 백준 BOJ' 카테고리의 다른 글

[BOJ C#, C++ ] 1000 A+B, 1001 A-B, 10998 AxB  (0) 2023.07.11
[BOJ C#] 10808 알파벳 개수  (0) 2023.03.14
[BOJ C#] 10162 전자레인지  (0) 2023.01.31
[BOJ C#] 1439 뒤집기  (0) 2023.01.28
[BOJ C#] 5585 거스름돈  (0) 2023.01.27