코딩테스트 (C#)

백준 5622 : 다이얼 - C# 풀이

UniCoti-sub 2024. 10. 29.
반응형

문제 사진

일단 문제는 이렇다. 이번 것도 이해하는 게 조금 힘들 수 있다.

사실 나도 아직 이해는 못했다. 다이얼 전화를 써본 적이 없어 그런 것 같다.

다만 나는 규칙성을 찾아서 문제를 해결했다.

 

using System;

namespace unicoti {
    class program {
        static void Main(string[] args) {
            string input = Console.ReadLine()??"";
            int result = 0;
            
            for(int i = 0; i < input.Length; i++) {
                result += GetTextNum(input[i]);
            }
            
            Console.WriteLine(result + input.Length);
        }
        
        static int GetTextNum(char s) {
            switch (s) {
                case 'A':
                case 'B':
                case 'C':
                    return 2;
                case 'D':
                case 'E':
                case 'F':
                    return 3;
                case 'G':
                case 'H':
                case 'I':
                    return 4;
                case 'J':
                case 'K':
                case 'L':
                    return 5;
                case 'M':
                case 'N':
                case 'O':
                    return 6;
                case 'P':
                case 'Q':
                case 'R':
                case 'S':
                    return 7;
                case 'T':
                case 'U':
                case 'V':
                    return 8;
                case 'W':
                case 'X':
                case 'Y':
                case 'Z':
                    return 9;
                default:
                    return 0;
            }
        }
    }
}

  

코드가 조금 길지만 당황하지는 말자.

다이얼에 적힌 숫자를 반환하기 위한 함수가 코드의 절반 이상이다.

GetTextNum()이라는 함수는 원하는 문자를 다이얼에 적힌 숫자로 변환해 준다.

 

먼저 읽어온 다음 숫자들을 모두 더하기 위한 변수 result를 선언하고

for문으로 돌면서 값을 구해준다. 이후 그 값에 문자의 길이를 더해서 마무리했다.

내가 찾은 규칙성이 바로 저것이다. (숫자의 합+문자의 길이)가 항상 답이었다.


오늘의 느낀 점)

이번 문제는 쓸데없는 말은 별로 없었긴 하지만 안 써본 물건이어서 그런가 어려웠다.

근데 사실 브론즈급 문제라 어렵다고 말하기도 좀 그렇다. 나도 그 정도는 아니지만

다이얼이 뭔지 모른다면 이해가 어려울 수 있다고 본다.


이상으로 도움이 되었길 바라며,

 

끝.   

반응형

댓글