WIL-항해의 여정(12)

qoqo_mi·2022년 5월 22일
0

항해99

목록 보기
11/23
post-thumbnail

알고리즘 테스트 그 후 ..

  • 알고리즘 테스트는 잘 봤던 터라 채점 이후 들떠있었는데 매니저님에게 연락이 왔다.

일단 문제가 뭐였냐하면

  • 입력받은 숫자가 만약 12345 라면 5+4+3+2+1 = 15 이런식으로 뒤집어서 더한 값을 출력하는 것이였다.

  • 근데 여기서 내가 착각한 문제가 있었다.

  • 저번에 광현과 input값에 대한 문제에 대해 말한적이 있는데 console창에 숫자를 입력할 때 ‘12345’같이 입력해줘야 input값을 받을 수 있다고 얘기를 했던 것 같아 이번에 문제를 풀 때에도 funtion(’12345’)를 입력받게 문제를 푼 것이다.( 그전까지 잘 풀었으면서! )

  • 다시 물어보니 심지어 우리의 문제는 그게 아니였다.. ! ㅋㅋㅋㅋ

  • 제출 할 때는 이렇게 제출했었다.

    function solution(n){
    
        let result = n.split("").reverse().map(Number)
    }

다시 푼 해결법 ! toString()

  • 해결법은 간단했다.숫자->문자열로 변환하는 함수 toString()

    function solution(n){
    
        let result = n.toString().split("").reverse().map(Number)
    }

TIL

🖇 JavaScript의 ES란?, ES5/ES6 문법 차이

🖇 얕은 복사와 깊은 복사

  1. 얕은 복사
  • 사본을 만들어내지 않고 원본을 참조하도록 복사한 척을 하는 것
  • 배열은 복사될 때 주소값이 복사된다.
  • 예를 들어 b라는 변수 값에 a를 넣고 b에 배열을 push한다.
  • a 의 값을 예상해보자
  • (주소에 대한 부분은 추후 정리하길 바람)
  const a = [1,2,3,4,5]
  // 배열[1,2,3,4,5]는 heap영역에 저장되고 a변수에는 heap메모리 주소가 저장된다.
  const b = a
  // a에 할당되어 있는 주소를 b에 저장
  b.push(6)
// b에 해당되는 heap영역에 6 저장
console.log(a) // [1,2,3,4,5,6] 
  • b에 push했는데 a에도 값이 추가된 것을 볼 수 있다.
  • 결국 a와 b의 메모리 주소는 같다.
  1. 깊은 복사
  • 배열의 복사 (깊은 복사같은 얕은 복사)
  • Array.prototype.slice() 를 사용하면 새로운 배열을 반환해준다. (참조형 요소가 있다면 얕은 복사)
const a = [1,2,3,4,5]
  const c = a.slice(0)
  • 그럼 둘은 True일까 ? -> 아니다. False이다.
  • 왜냐면 c는 a의 주소값이 아닌 새로운 주소값을 가지기 때문이다.

일주일의 회고

  1. 알고리즘
  • 알고리즘 진짜 열심히 풀었다. 사실 파이썬으로만 (그것도 완전 기초)로만 풀어서 "그래도 이 정도면 괜찮겠지" 생각했던 내 자신 반성하고 또 반성해
  • 그래도 알고리즘 일주일 전과 일주일 후의 내가 꽤 ! 생각보다 ! 이 정도로 성장했다니 라는 생각이 들 정도면 꽤? 좋은 성과이지 않았나 싶다.
  1. 이번주의 목표는 뭐였어
  • 사실 이번주의 목표는 일주일 전과의 차이를 내가 느끼는 거였고 두번째는 output과정을 꼭 거치자는 거였다.세번째는 알고리즘을 어떻게 풀어야 잘 풀었다고 생각하는거지 ? 라는것?
  • 처음에는 생각보다 output과정을 만드는 것 자체가 쉽지는 않았던 것 같다. 모르는 문제를 어떻게 푸는가 바로 답지 먼저 봤던 것 같다.
  • 다른 팀원들이 어떻게 문제를 푸는지 화면 너머로 봤다. 팀원들 중에 잘 하는 사람들이 많아서 그런 사람들의 공통점을 잘 살펴봤다. 팀원들은 모르는 문제가 있거나 어떻게 풀어야하는지 막혔을 때 그에 관련된 함수를 검색하는 식으로 먼저 답지를 접근하는 것이 아니라 그에 해결할 수 있는 방법을 검색해보는 것이였다.
  • 이런 과정들을 나에게도 적용시켜보고 답지는 멀리하려고 했던 것 같다. 정 모르겠는 문제는 제한시간내에 풀지 못했던 문제들만 답지를 보고 풀려고 했다.
  • 외워야 할 것들(함수 이름) 같은 것들은 외우되 MDN문서를 보고 적용시키는 방법을 보려 했다. 처음에는 눈에 익지 않았는데 나중에는 문자열에 쓰이는건지 아닌지, 배열에 대한건지 아닌지에 대한 것들까지도 적용해 보았다.

Ref.

Bbaktaeho

0개의 댓글