밍부스06) 문자열은 왜 for문이 돌아가는걸까...?(뇌용량초과)

minji jeon·2022년 7월 19일
0

TIL_

목록 보기
25/61
post-thumbnail

우선 이번주 내내 자바스크립트 문법과 알고리즘을 공부하면서
문법에 대한 혼돈기. 춘추전국시대가 왔다. 오늘 내가 알게된 유레카같은 문법들을
차차 정리해 보겠다.

아 그리고,
부트캠프 첫째주 공부순위는

초반에 거의 30등까지도 밀려났었는데 3위로 끝을 냈다.
캬캬 일요일에도 공부한 보람이 있구만~~

이번주에도 기깔나게 달려보고 싶지만 개똥같은 체력이 따라와주질 못한다.
오늘 아침에는 일어나자마자 찬물을 마시고 장염에 걸렸다.....이건실화다.
다행히 바로 약먹고 나아져서 컴퓨터 앞에 앉을수 있지모야....😂

오늘은 한가지 주제를 팠다기 보다는 다양한 개념들을 익히고 공부하고, 정리했던거 같다. 우선 이번주차의 main인 알고리즘!!
난이도가 하->중으로 올라가 하루에 4개씩으로 문제갯수를 줄였다.
확실히 매일매일 풀다보니 나름의 경험치가 쌓이고 있다.

오늘 푼 문제들은 알고리즘 시리즈에 복습겸 정리해놓았다.
어제그제는 밀려서 하루에 10개씩 작성하느라 손가락이 저릴정도로 타자를 쳤는데 오늘은 안밀려서 다행이다. 한번밀리면 걷잡을수가 없네..;;;

참고
30번문제
31번문제
32번문제

그리고 오늘은 알고리즘 모의고사가 있었다. 문제는 다행히 어렵지 않아서 푸는건 괜찮았는데 리플릿과, 영상촬영을 위한 obs를 깔라는데 어떻게 사용할지 몰라서 이런 부수적인 것들이 혼란스러웠다.

😋오늘의 게더일상.jpg😋
처음엔 그래픽 킹받네......;; 였는데
매일 일상을 이곳에서 보내면서 점점
적응중...꽤나 귀엽네..? 쿡,,,,,


오늘 알게된 것들을 정리하였다.

오늘 cs스터디에서는 컴퓨터에 대해 공부하였다.

컴퓨터는 두가지 측면이 있다. 논리적 구성과 물리적 구성
프로세서 클럭 듀얼코어 하나의 패키지에 처리장치가 두개 들어있다.램은 휘발성 주기억장치 파일을 끄면 내용이 사라지는것과 같다.....
이렇게 조금씩 컴퓨터에 대한 기본지식들을 쌓아가고 있다.

알고리즘 시간에는 스프레드 문법을 연습해보았다.

https://serzhul.io/JavaScript/35.%EC%8A%A4%ED%94%84%EB%A0%88%EB%93%9C-%EB%AC%B8%EB%B2%95/\
스프레드문법은 정말 유용한거 같다. 여기저기 다 붙여서 활용할수 있으니, 배열을 다룰때는 자주 사용해봐야겠다.

형변환을 할때 자주 사용하던 parseint와 tostring문법에 대해 새로운 기!
능을 알게되었다.

parseint는 3진법을 정수로, tostring 정수를 3진법으로 만들수 있다. 이 두개는 서로 반대의 기능을 갖고있는 셈이다.

배열을 중복제거하면서 알게된 set문법

map과 함께 등장하는 함수이다.
set : 중복되지 않는 유일한 값들의 집합. 배열과 유사하지만 차이가 있다.

배열에는 있지만 set에는 없는 특징이 있다.

  • 동일한 값을 중복하여 포함할 수 있다.
  • 요소 순서에 의미가 있다.
  • 인덱스로 요소에 접근할 수 있다.

set은 수학적 집합을 구현하기 위한 자료구조이다.
--> 교집합, 합집합, 차집합, 여집합 등을 구현할 수 있다.

중복을 허용하지 않는 set의 특성을 활용하여 중복된 요소를 제거할 수 있다.

filter를 활용한 중복제거

const uniq = array =>
array . filter((v , i , self) => self . indexOf(v) === i);
console . log(uniq([2 , 1 , 2 , 3 , 4 , 3 , 4])); // [2, 1, 3, 4]

set을 활용한 중복제거

const uniq = array => [...new Set(array)];
console . log(uniq([2 , 1 , 2 , 3 , 4 , 3 , 4])); // [2, 1, 3, 4]

이 외에 map과 set에 대한 자세한 정보는
자료구조에 대해 공부한뒤 정리를 해봐야겠다.
object와 array가 전부인줄 알았던 세상에 혼란이 오기 시작했다....

구조분해 할당문법

스프레드 문법과 리액트를 공부하면서 배운문법이 구조분해 할당문법이다.

const [a, b] = [1, 2];
console.log(a); // 1
console.log(b); // 2 

이런 내용들을 정리하고 자바스크립트
주요 이슈들을 정리하였다.

유사배열객체

알고리즘을 풀면서 문자열이 length가 적용되고, for문이 돌아가는걸 알게되고, 큰 혼란이 왔었다.. what the....이런게 느슨한 타입인건가...?ㅋㅋㅋㅋ
유사배열 객체라는 개념을 알게되고, 혼란을 조금 잠재울 수 있었다.나의 정신건강에 가장큰 악영향을 미쳤기때문에 이주제를 오늘의 제목으로 선정하였다.

마치 배열처럼 인덱스로 프로퍼티값에 접근가능하며, length프로퍼티를 갖는객체이다.
문자열은 마치 배열처럼 인덱스를 통해 각 문자에 접근할 수 있으며, length프로퍼티를 갖기때문에 유사배열객체 이고, for문으로 순회도 가능하다. (원시값과 래퍼객체 )
그러나 변수에 새로운 문자열을 재할당하는 것은 가능하다(기존문자열을 변경하는것이 아니라 새로운 문자열을 새롭게 할당하는것이다
--모던 자바스크립트 deep dive 발췌

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글