스터디 기록3

유아현·2022년 11월 11일
0

Study

목록 보기
3/27
post-thumbnail

오늘의 스터디 문제 목록

Math.round()

  • 입력값을 반올림한 수와 가장 가까운 정수 값을 반환한다!

프로그래머스 - 문자열 다루기 기본

이 문제에서 문자열을 받아서 그 문자열에 숫자로 판별하는 법으로 Number()를 사용했는데... 자꾸 통과가 안 돼서 짜증 났었다... 그래서 스터디 시간에 ㅎㄱ님이 발표하시는 것을 설명 듣고 무릎 탁...!

<< 내가 작성한 코드 >>
function solution(s) {
    let length = s.length
    if (length === 4 || length === 6){ // 길이가 4 혹은 6이고
        // 문자열이 숫자인지 확인하는 방법으로 Number() 사용
        if(!!Number(s) === true){  // 숫자로만 구성됐다면 true 리턴
            return true;
        }
        else{
            return false;
        }
    }
    return false; // 나머지는 다 false
}

// Number()는 인자로 전달된 문자열이 숫자일 때 Number 객체가 리턴되고, 숫자가 아니면 NaN이 리턴됩니다. 
!을 두번 붙이면 NaN은 false가 되며, Number는 true가 됩니다.
위의 주석을 보고 Number()를 썼는데 Number에 문자열을 통채로 넣어서 해서 안 됐나부다. 


그러니까 만약 매개변수 s에 '0xf5'라는 문자열이 들어왔을 때 이 문자열에 해당하는 숫자로 변환이 된다는 것이다... ㅠ
그래서 문자열의 0, x, f, 5 이렇게 문자 요소 하나하나를 Number()로 확인해야 숫자인지 아닌지 판별이 가능하다는 것!!

for(let i of s){
	// 문자 요소 하나하나를 숫자인지 판별을 해서 만약 NaN이라면 숫자가 아니므로 false가 출력!!
	if(Number.isNaN(Number(i))){ 
    	return = false }
}


+ ㅈㅎ님의 코드, 정규식으로 판별!!

정규표현식 match를 사용하셨담
 s.match(/[a-zA-Z/g] === null)

- s에 문자 소문자 a-z까지 대문자 A-Z까지 있는지 판별하고 g는 문자열 모든 패턴을 검색하는 것이라고 하셨다!!
- 숫자로만 구성이 됐다면 아무것도 없는 null이 나올 테니 null이면 true로!

substr()/ substring()

  • string 객체의 시작 인덱스로부터 종료 인덱스 전까지 문자열 부분 문자열을 반환한다!
    substr... 말고 substring 써라,,, !!

0개의 댓글