Algorithm 7

Ted·2022년 5월 18일
0

Algorithm

목록 보기
1/7
post-thumbnail

문제

문제 코드

function solution(n) {
    var answer = '';
    return answer;
}

내 코드 풀이

function solution(n) {
    var answer = '';    
                                  // 여기에 왜 = ''; 인지 정확한 이유 아직 인지 x
    for(let i = 1; i<=n; i++){    //n은 자연수기 때문에 n.length 미필요
        if(i%2 == 0){             // i를 돌리고 있으므로 i%2를 해야함.
            answer+= '박'
        }else{
            answer+= '수'
        }                           // 왜 이 값이 '수','박' 이런 식으로 안 찍히고 수박수박수 이런 식으로 찍히는지
    }                                  // 위 처럼 ['수,''박] 으로 찍힐 거라면 배열이 있어야할 때인가?
    return answer;         // 그래서 그땐 .push가 필요한 거고
}    

⭐ 코드 풀이 2

( 이 코드를 보고 배열, 문자열, 숫자열 let으로 선언하는 의미에 대하 깨달음! 꼭 볼 것!)

function solution(n) {
    let answer = '';
    let arr = [];
    
    for(let i = 0; i < n; i++){
        if (i%2 === 0){
            arr[i] = "수"
        } else {
            arr[i] = "박"
        }
        answer = arr.join('');
    } 
    return answer;
}

사용된 문법(-자바스크립트 문법 part 1)

1. 코드 풀이 1

  • for문
  • 연산 % < 위 코드를 보면 나머지가 == 0이 되는 걸 의미 > < + 제외 사칙연산을 문자열에 해주면 값이 바뀌면서 숫자열로 바뀜 +는 문자열로 인식해서
    1+'1'= '11'로 나옴

2. 코드 풀이 2

  • for 문
  • 연산 % ( 연산 * , / ,- %를 했을 때 숫자형 문자가 숫자열로 바뀐다. +는 그대로 문자형으로 남음
  • .join()
  • let answer = ''; < 문자열을 초기화, '자바스크립트 형태의 기본'과 변수를 알면 이해 될 것. >
  • let arr = []; < 배열을 초기화, '자바스크립트 형태의 기본'과 변수를 알면 이해 될 것. >

🤦‍♂️ 나의 착오

  1. 내 코드 풀이에서 다 풀고 난 다음에 return < 이 부분 > 리턴하고 그 다음 부분에 뭘 넣어야 될지 고민이 있었다.
    위의 답은 '수','박' 이런 식으로 계속 i를 돌린 값들이 나오면 그것들을 더해야 하는 거기 때문에.

    조원 분의 코드 풀이2를 보면서 생겼던 의문이 내 코드 풀이까지 이해를 할 수 있게 됐다.
    내 코드 풀이의 코드의 값은 for문을 돌리면 '수', '박, 이런 식으로 값이 나오는 게 맞는데 자바스크립트는 문자열 ' ' 이런 형식을 '나'+'바보' = '나바보' 라고 자동으로 문자열끼리 더한 값이 나온다고 한다. 이게 자바스크립트의 기본이고 특징이라고 한다.

    그런 특징이 있기에 '10'+'12'=1012이 된다. 왜냐 여기 숫자는 숫자인 문자열에 해당하므로 그래서 수학적으로 저 둘 더한 값을 구하길 원한다면 10+12=22가 나오게 된다. 저렇게 숫자열로 써야함.

profile
cording, arsenal, book, color

0개의 댓글