-
#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()를 사용해야 합니다.
'AIL( Algorithm I Learned)' 카테고리의 다른 글
#AIL_23.12.15 // Programmers_직사각형 별찍기 (0) 2023.12.15 #AIL_23.12.13 // Programmers_행렬의 덧셈*** (0) 2023.12.13 #AIL_23.12.11 // Programmers_문자열 내림차순으로 배치하기 (1) 2023.12.11 #AIL_23.12.10 // Programmers_약수의 개수와 덧셈 (0) 2023.12.10 #AIL_23.12.08 // Programmers_수박수박수박수박수박수? (1) 2023.12.08