ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #AIL_23.12.12 // Programmers_문자열 다루기 기본
    AIL( Algorithm I Learned) 2023. 12. 12. 10:07

    ## AIL_문자열 다루기 기본

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

    *** 제한 사항
    s는 길이 1 이상, 길이 8 이하인 문자열입니다.

    s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

    *** 입출력 예
    s return
    "a234" false
    "1234" true

    ## solution.JavaScript

    1. 문제의 접근 방식

    주어진 문제는 문자열 `s`의 길이가 4 혹은 6인지 확인하고, 각 문자가 숫자로만 이루어져 있으면 `true`를 그렇지 않으면 `false`를 반환합니다. 


    2. 문제풀이

    function solution(s) {
        // 길이 확인: 주어진 문자열 s의 길이가 4 또는 6인지 확인
        if (s.length === 4 || s.length === 6) {
            // 각 문자가 숫자로만 이루어져 있는지 확인하기 위한 for 루프
            for (let i = 0; i < s.length; i++) {
                // 숫자가 아닌 문자가 있다면 false를 반환하고 함수 종료
                if (isNaN(s[i])) {
                    return false;
                }
            }
            // for 루프를 모두 통과하면 문자열이 숫자로만 이루어져 있으므로 true 반환
            return true;
        } else {
            // 길이가 4 또는 6이 아니라면 false 반환
            return false;
        }
    }
    
     /*
     테스트 1
    입력값 〉	"a234"
    기댓값 〉	false
    실행 결과 〉	테스트를 통과하였습니다.
    테스트 2
    입력값 〉	"1234"
    기댓값 〉	true
    실행 결과 〉	테스트를 통과하였습니다.
     */

     

    1. `solution` 함수는 주어진 문자열 s가 특정 조건을 만족하는지를 확인하는 함수입니다.

     

    2. `if (s.length === 4 || s.length === 6)`는 주어진 문자열의 길이가 4 또는 6인지를 확인합니다.

     

    3. 만약 길이가 4 또는 6이라면, `for` 루프를 통해 문자열의 각 문자를 확인합니다.

     

    4. `isNaN(s[i])`는 현재 문자 `s[i]`가 숫자인지를 확인하는 조건입니다. `isNaN` 함수는 주어진 값이 숫자가 아니면 `true`를 반환합니다.

     

    5. 만약 문자열 중에 숫자가 아닌 문자가 있다면, `return false;` 를 통해 즉시 `false`를 반환하고 함수를 종료합니다.

     

    6. `for` 루프를 모두 통과하면 문자열이 길이가 4 또는 6이면서 모든 문자가 숫자로만 이루어져 있다는 뜻이므로, `return true;`를 통해 `true`를 반환합니다.

     

    7. 만약 길이가 4 또는 6이 아니라면, `return false;`를 통해 `false`를 반환합니다.


    3. 다른사람의 문제풀이 및 접근방식 분석

    function solution(s) {
        return (s.length === 4 || s.length === 6) && s == parseInt(s)
    }
    /*
    테스트 1
    입력값 〉	"a234"
    기댓값 〉	false
    실행 결과 〉	테스트를 통과하였습니다.
    테스트 2
    입력값 〉	"1234"
    기댓값 〉	true
    실행 결과 〉	테스트를 통과하였습니다.
    */

     

    1. `s.length === 4 || s.length === 6` 주어진 문자열 s의 길이가 4 또는 6인지 확인합니다.

     

    2. `s == parseInt(s)` 주어진 문자열 s가 정수로 변환 가능한지 확인합니다. `parseInt(s)`는 문자열을 정수로 변환합니다. `== `연산자는 값의 비교를 수행하며, 자동으로 형 변환을 수행합니다.


     

    #  parseInt() 함수란?

    `Parseint()`는 문자열을 정수로 변환하는 JavaScript의 내장 함수입니다. 이 함수는 문자열의 처음부터 숫자로 변환할 수 있는 부분까지의 정수를 추출합니다.


    #  parseInt() 사용방법

    let intValue = parseInt("1234");
    console.log(intValue); // 출력: 1234

     

    `parseInt()` 함수는 두 개의 매개변수를 받을 수 있습니다. 두 번째 매개변수는 진법(base)을 나타내며, 보통 10진수로 변환하려면 생략하거나 10을 사용합니다.

    let intValue = parseInt("1010", 2); // 2진수 "1010"을 10진수로 변환
    console.log(intValue); // 출력: 10

    #  parseInt() 장단점

    ** 장점

    1. 문자열을 정수로 변환

     parseInt()는 문자열을 정수로 변환하는 간단하고 편리한 방법을 제공합니다

     

    2. 진법 변환

     두 번째 매개변수를 이용하여 다양한 진법의 문자열을 10진수로 변환할 수 있습니다.

    ** 단점

    1. 소수 처리

     parseInt()는 정수를 반환하며, 소수점 이하의 값을 무시합니다. 만약 소수를 다루어야 하는 경우에는 parseFloat()를 사용해야 합니다.

     

    2.문자열이 숫자로 시작하지 않는 경우

    문자열이 숫자로 시작하지 않으면 parseInt()는 해당 문자열을 변환할 수 있는 최대한의 숫자까지만 반환하며 나머지는 무시합니다.


    #  parseInt() 사용시기

    ** 사용시기

    parseInt()는 주로 외부에서 받은 문자열을 숫자로 변환해야 할 때 사용됩니다. 예를 들어, 웹 페이지의 폼에서 입력받은 문자열을 숫자로 바꿀 때 사용할 수 있습니다.

    ** 사용 시 주의사항

    1. 기본적인 유효성 검사

    parseInt()는 변환할 수 없는 문자열이 주어지면 NaN을 반환합니다. 따라서 변환 전에 기본적인 유효성 검사를 수행해야 합니다.

     

    2. 진법 주의

    두 번째 매개변수를 사용하여 진법을 명시할 때, 실제 진법과 일치하지 않으면 오류가 발생할 수 있습니다.

     

    3. 소수 처리

    parseInt()는 정수를 반환하므로, 소수를 다룰 때는 parseFloat()를 사용해야 합니다.

Designed by Tistory.