[프로그래머스] 문자열을 정수로 바꾸기 (startIndex, charCodeAt)

조아연·2024년 6월 26일

JavaScript 공부

목록 보기
14/24

JavaScript 코딩테스트 연습 (18일) 문자열을 정수로 바꾸기

문자열을 정수로 바꾸기

바로 직전에 배열을 문자열로 바꾸고 정수로 바꾸고 했던게 기억이 나서 바로 한번 풀어봤는데 오류가 났다.
for문을 쓰려다가 if문이 더 적합할 것 같아서 if문을 썼다.

첫번째 답변

function solution(s) {    
    var answer = 0;
    s.split('').map(Number);
    if (s === -1234) {
        "-"+s;
    else s === 1234 {
        s;
    }
    return answer;
} 

먼가 좀 잘푼거 같았는데..
문자를 배열로 바꾸고 숫자로 반환시킨 것 같은데..
if문 부분에서 오류가 난것으로 인지하고 확인 중에 있다.

chatgpt랑 대화하면서 어디서 잘못된지 찾고 있었는데
else 문 사용이 틀린게 맞았다.
if else도 아녔고 그냥 else였는데, if문에 해당되는 경우가 아닌 상황이라면 else로 보내는 거라 else문에는 별다른 조건 수식을 달지 않아도 됬다.

그리고 if문에서 해당하는 조건을 찾는 수식도 내가 기입한거랑 조금 달랐다.

두번째 답변

function solution(s) {    
    var answer = 0;
    s.split('').map(Number); // 문자를 배열로 바꾸고 숫자로 변환
    if (s === "-") {
        return -s;
    } else {return s;
        }
    return answer;
} 

실행한 결과값을 보니 거의 다온 듯 하다.

""를 지울 수 있는 메서드가 있는지 gpt에게 물어봤다.

특정 문자열을 지우는 메서드는 replace() 메서드를 사용할 수 있습니다.

세번째 답변

아까와 다른점이 없다.. 뭔가 사용방법이 잘못된 것 같다.

실행결과 참고해서 "를 제거하는 함수를 사용했는데, 오류가 났다.

네번째 답변

다섯번째 답변

function solution(s) {    
    let sign = 1; //부호를 저장할 변수, 기본 값은 양수(1)
    let startIndex = 0; // 숫자 변환을 시작할 인덱스, 기본값은 0
    
    // 문자열의 첫 번째 문자가 '-'이면 음수로 처리
    if (s[0] === '-') {
        sign = -1;
        startIndex = 1; // 숫자 변환을 두 번째 문자부터 시작
    } else if (s[0] === '+') { // 문자열의 첫 번째 문자가 '+' 이면
        startIndex = 1; // 숫자 변환을 두 번째 문자부터 시작
    }
     let num = 0; // 문자열의 숫자 부분을 순회하여 숫자로 변환
     for (let i = startIndex; i < s.length; i++) {
     // 각 문자를 숫자로 변환하고 자리 값을 반영하여 더함
         num = num * 10 + (s.charCodeAt(i) - '0'.charCodeAt(0));  
     }
            // 부호를 적용한 최종 숫자를 반환     
            return sign * num;
        } 

진심 어려웠다.

깨달은 점

  • if : 주어진 조건이 참일 때 실행할 코드를 지정합니다.

  • if else : 조건이 참일때와 거짓일 때 각각 다른코드를 실행할 수 있습니다.

  • else : 주어진 조건들이 거짓일 때 실행되는 코드입니다.

  • '^\s+': 문자열의 시작(^)에서 하나 이상의 공백(\s)을 찾습니다.

  • '|\s+:또는문자열의끝(': 또는 문자열의 끝()에서 하나 이상의 공백(\s)을 찾습니다.
    -'/g': 전역(global) 검색을 수행하여 문자열의 모든 부분에서 해당 패턴을 찾습니다.

  • isNegative : 해당 변수는 입력 문자열이 음수인지 확인합니다. 첫 문자가 '-'인 경우 true로 설정합니다. 만약 첫 문자가 '-' 이 아니면 false로 설정합니다.

  • startIndex : 해당 변수는 숫자 변환을 시작 할 인덱스를 나타냅니다. 첫번째 문자가 부호인 경우 (-,+) 숫자는 두번째 문자에서부터 시작하여 'startIndex 1'로 설정합니다. 부호가 없으면 0으로 설정되어 문자열의 첫 번째 자리에서부터 숫자 변환을 시작합니다.

  • charCodeAt : 해당 메서드는 JavaScript에서 문자열의 특정 위치에 있는 문자의 유니코드(Unicode) 값을 반환하는 메서드입니다. 이 메서드는 문자열에서 문자 하나를 선택하고 그 문자의 유니코드 값을 정수로 반환합니다.

profile
비전공자 QA의 자기개발 공부노트

0개의 댓글