TIL 6일차

홍인열·2021년 8월 28일
0

프로그래머스 코딩테스트 lv1 문제를 풀어보고있다.
단계별로 진행을하고 있는데 아직 잘되지 않는다.

  • 입력받은 문자배열을 차례대로 검사해서 숫자가 맞을 경우만 코드가 실행되도록 만들것.
  • 문자는 숫자(1~10)/알파뱃(S,D,T 중 하나)/기호(*, #, "" 중하나) 이 3번 반복된형태로 들어온다.
    예) '2S*3D1T#'
//먼저 문자열을 배열로 변환한다.
function toChangeArray (string) {
  return string.split("")
}
let newArray = toChangeArray("2S*3D1T#")
// -> ["2", "S", "*", "3", "D", "1", "T", "#"]
//그리고 각 문자열을 순서대로 확인하고 숫자일 경우 코드를 실행한다.
for (i = 0; i < newArray.length; i += 1) {
  if(Number.isInteger(parseInt(newArray[i])) {
     } else {
  continue}
//newArray[i]는 데이터 타입이 string이기때문에 parseInt()를 이용해 정수 타입으로 변환 시켜준다. 숫자가 아닌경우 NaN 이된다.
//변환된 숫자가 Number이냐에 따라 blooea을 반환하는 Number.isInteger()을 사용해 조건문의 실행 여부를 결정한다.
// 또한, Number가 아니면 바로 다음 반복문을 실행하도록 하여, 연산을 최소화시킨다.

같은 문제를 오랫동안 붙잡고있는데 중간에 버그가 계속 확인된다. 지금은 console.log를 코드 중간중간에 많이 추가하여 실행단계별로 값이 어떻게 변화하고 버그가 발생하는지 확인해가며 코드를 수정하고있다. 좀더 효율적인 속성이나 메서드가 많겠지만 아직은 코드가 길어지더라도 원하는 값이 반환되도록 하는것이 목표이다.

profile
함께 일하고싶은 개발자

0개의 댓글