본문 바로가기
프로그래머스 코딩테스트 문제/Level 1

[프로그래머스] - 문자열 다루기 기본(C#)

by jyppro 2023. 8. 9.

문자열 다루기 기본

오늘은 "문자열 다루기 기본" 문제를 풀어보도록 하겠습니다. 해당 문제가 마지막 정답률 80% 문제입니다. 이후부터는 70% 대로 떨어지게 됩니다.

 

문제 설명

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

 

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.
  • s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

 

입출력 예

s return
"a234" false
"1234" true

 

시작 코드

public class Solution {
    public bool solution(string s) {
        bool answer = true;
        return answer;
    }
}

 

 

나의 풀이

public class Solution {
    public bool solution(string s) {
        bool answer = false;
        if(s.Length == 4 || s.Length == 6) { answer = int.TryParse(s, out int x); }
        return answer;
    }
}

 

코드 분석

string타입 s가 주어지며 코드가 시작됩니다. s의 길이가 4거나 6이라면 answer에 int.TryParse를 사용하여 s를 int형으로 변환을 시도한 값을 넣어주고 리턴합니다.

 

풀이 설명

이번에 작성된 코드는 단 한줄로 끝났습니다. 작성된 if문은 문제에서 요구하는 내용을 그대로 담았습니다. if조건에서 길이가 4 혹은 6이면 answer에 int.TryParse()를 사용해서 값을 넣어주는데, int.TryParse()는 문자열을 int형으로 변환하는 것입니다. 하지만 일반적인 변환과는 다르게 문자열에 꼭 정수가 포함되어 있어야 동작합니다. 하지만 이것은 동작을 하기위한 것이지 변환에 성공하려면 문자열이 전부 숫자로 이루어져 있어야 합니다. 변환에 성공하면 true, 실패하면 false를 반환하기 때문에, 숫자로만 구성되어 있는지 확인할 수 있습니다.

<NEXT>

 오늘은 정답률 80%대의 마지막 1단계 문제인 "문자열 다루기 기본"을 풀어보았습니다. 다음부터는 정답률이 79%로 내려가게 됩니다. 다음 문제는 "행렬의 덧셈" 문제입니다. 감사합니다.