Coding Test/Programmers

[Lv.1] 문자열 다루기 기본 [프로그래머스_코딩테스트] [문자열, 조건문] [20분]

whawoo 2025. 6. 13. 09:14
반응형

🔍 문제 요약

https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문자열이 숫자로만 이루어져 있는지 체크하는 문제. 추가로 문자열의 길이는 4 or 6임

🧠 나의 접근 방식과 시행착오

맨 처음 줄에 문자열의 길이가 4 or 6이라는 것을 분명 봤는데도 그냥 주어져 있는 조건이 그런건가보다 하고 넘어갔던 것이 불찰.. 엄청 기본적인 문제인대도 그거 놓치니 테스트 케이스 4개가 놓쳤어서 이유를 몰라서 시간을 잡아먹었다...

using System;

public class Solution
{
    /// <summary>
    /// 문자열 다루기 기본
    /// https://school.programmers.co.kr/learn/courses/30/lessons/12918
    /// </summary>
    public bool solution(string s)
    {
        for (int i = 0; i < s.Length; i++)
        {
            if (s[i] < '0' || s[i] > '9')
            {
                return false;
            }
        }

        return true;
    }
}

/// <summary>
/// C# 7.3
/// </summary>
internal class Program
{
    public static void Main(string[] args)
    {
        var sl = new Solution();
        var s1 = "a234";
        var s2 = "1234";
        Console.WriteLine(sl.solution(s1));
        Console.WriteLine(sl.solution(s2));
    }
}

✅ 풀이 코드

피드백이랄 것도 없이 그냥 문자열의 길이가 4이거나 6이 아닌 경우 틀린 걸로 반환하는 것을 추가한다. 추가로 foreach를 좀 더 간결하게 하는 방법은 다양한 방향이 있을 것.

using System;
public class Solution {
    public bool solution(string s)
    {
       if (s.Length != 4 && s.Length != 6)
        return false;

        foreach (char c in s)
        {
            if (c < '0' || c > '9')
                return false;
        }

        return true;
    }
}

🔄 정리

문제를 꼼꼼히 읽고 놓치는 거 없는지 체크를 잘해보자

반응형