본문 바로가기

분류 전체보기

(177)
[1주차 WIL] 2022.11.14 ~ 2022.11.20 회고 지난 일주일은 1주차임에도 불구하고 정말 정신없이 지나갔다. 매일 아침 9시부터 일어나 새벽 1~3시까지 계속해서 공부하고 프로젝트를 진행하며 지냈다. 돌이켜보니 어느새 주 100시간이 넘는 시간을 하고 있었다. 솔직히는 요 1주일간 학습한 내용이 워낙 많아서 기억을 다 할 수는 없겠지만, 그래도 이전에 직장을 다니면서 남는 시간에 조금씩 혼자 했던 것에 비하면 정말 엄청난 학습양이고, 단기간에 큰 성장을 이뤄낸것 같다. 1주차 14일(월) ~ 17일(목)은 JS와 Python & Flask를 이용해서 풀스택 미니 프로젝트를 진행했다. [20221114] 회원가입 및 로그인 - 해시함수와 JWT / REST API [20221115] onclick 함수에 매개변수 사용, dynamic routing [2..
[20221120] JavaScript 호이스팅과 TDZ (변수은닉화 내용 추가 예정) 스코프, 호이스팅, TDZ 스코프 (scope) 스코프는 현재 실행 중인 문맥을 지칭하는 단위로, 값과 표현식이 "보이"는 혹은 "레퍼"되는 공간을 의미함. 스코프에는 계층이 존재하며, 자식 스코프는 부모 스코프의 변수와 표현식을 레퍼할 수 있지만, 반대는 불가능함 컴퓨터 프로그래밍에서 스코프는 name binding을 가능하게 하는데, 실제 존재하는 값을 지칭하는 이름을 만드는 것을 의미함 이러한 스코프는 프로그램 내에서 이름 충돌을 방지하며, 각기 다른 스코프에서 같은 이름을 사용해 서로 다른 값을 지칭하게 해줌 The term "scope" is also used to refer to the set of all name bindings that are valid within a part of a p..
[20221119] JavaScript 객체와 불변성 기본(원시)형 데이터와 참조형 데이터 & 얕은 복사와 깊은 복사 & 데이터의 불변성 (feat. 할당과 재할당) 기본(원시)형 자료는 메모리에 값을 직접 저장하고, 참조형 자료는 값이 저장된 주소 값을 할당(참조)하는 것이다. 기본(원시)형 데이터와 참조형 데이터 & 얕은 복사와 깊은 복사 원시 데이터와 참조형 데이터의 정의와 종류는 아래 포스팅 참고 [20221118] JavaScript 특성과 자료구조 JavaScript의 특성 자바스크립트는 느슨한 타입(loose typed)의 동적 언어이다. JS에서 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 (및 재할당) 가능하다. 예를 들면, 상수 변수 dev-jn.tistory.com 위의 statement가 사실 잘 이해가 가지 않..
[11번][연습문제][Lv.1] 콜라츠 추측 문제 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. 제한 사항 입력된 수..
[10번][연습문제][Lv.1] 제일 작은 수 제거하기 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 나의 접근 [pseudo code] - min 포인터를 생성 = arr[0]에서 시작 (min value와 index를 저장할 변수를 따로 선언) - i =1부터 for loop을 돌면서 min 포인터와 값을 비교하여 작은 값을 찾으면 min 포인터를 해당 값으로 옮김 - loop를 다 ..
[4번][연습문제][Lv.1] 완주하지 못한 선수 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 나의 답 일단, 아직 테스트 통과를 못한 상황이다. 이 문제는 해시 문제인지 모르고 삽질을 ..
[3번][연습문제[Lv.1] 수박수박수박수박수박수? 문제 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.제한 조건 n은 길이 10,000이하인 자연수입니다.' 나의 답 처음에는 n값을 받아서 홀/짝별로 따로 처리해줄까 하다가, 귀찮아서 아래와 같이 구현해봤다. 점수는 1점받았다ㅋㅋ 점수 주는 기준이 뭔지 잘 모르겠다... function returnStr(n) { const str = "수박"; let answer = ""; for (let i = 0; i < n; i++) { answer += str[i%2]; } return answer; } console.log(returnStr(3)) //수박수..
[2번][연습문제][Lv.1] 나누어 떨어지는 숫자 배열 문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 나의 답 function solution(arr, divisor) { let divided = []; for (let element of arr) { if (element % divisor === 0) { divided.push(element); } } function com..