본문 바로가기

전체 글

(49)
알고리즘 문제 2 숫자를 하나 받아서 뒤집어진 숫자를 반환하는 문제이다. 1. 나머지 몫으로 풀이 코드를 처음부터 설명하자면 x라는 인자로 숫자를 받아서 만약 0이라면 바로 0을 반환하는 조건문을 넣어준다. 0이외의 숫자가 들어오면 밑에 코드들이 실행된다. while문을 통해서 0보다 클때까지만 코드블럭있는 코드들을 실행시켜준다. 먼저 res라는 변수에다가 x를 10으로 나누고 나머지를 더해준다. 그리고 x에다가 자기 자신을 10으로 나누고 난 몫을 할당해준다. parseInt()는 안에 있는값을 정수로 만들어준다. 만약 x의 값이 5678이라면 value에다가는 할당된 원래 값에다가 10을 곱하고 10으로 나눈 나머지 즉 8을 더해준다. 처음에는 value에는 0이 할당되어있기때문에 그대로 8이다. 그 다음 567에서 ..
알고리즘 문제 1 주어진 배열에서 target이 나올 수 있는 숫자 두개의 조합을 구해야하는 문제다. 1. 2중 for문 const twoSum = (nums, target) => { for(let i=0; i
TIL 13 JSX, React 기초부터 1. JSX란? 자바스크립트 문법을 확장한 리액트에서 쓰이는 고유의 문법이다. 단순히 봤을때는 html마크업과 비슷해보이지만 자바스크립트에서 쓰이는 모든 기능이 포함되어있다. 2. 단 하나의 html 파일 CRA을 통해서 react 초기 세팅을 마치면 html파일은 하나만 있는것을 볼 수 있다. 하나의 프로젝트 처음부터 끝까지 react에서는 하나만의 html 파일하나를 쓰고 나머지는 js파일에서 JSX로 구현한 내용들로 이루어진다. index.html 파일을 보면 단하나의 div태그와 root라는 아이디가 지정되어있다. index.js파일에는 React와 ReactDom모듈을 import 한 코드를 볼 수 있다. 가장밑에 ReactDOM.render(, document.getElementById('ro..
TIL 12 인스타그램 로그인창 리팩토링 바로 이전 글에서 인스타그램 로그인창을 구현했던 작업을 올렸는데 그 당시 작성했던 코드를 보면 하나의 함수에 모든 과정을 우겨넣은(?) 코드라고 볼 수 있다. 이렇게 코드를 작성하게되면 지금이야 간단한 기능을 구현하니깐 별 상관없을지 몰라도 조금만 복잡해지면 어느부분이 어느 기능을 구현하는지도 알 수 없는 상황이되어 유지보수가 사실상 불가능해진다는것을 배웠다. 그래서 가독성이 좋고 유지보수가 수월한 코드를 작성하기 위해서는 각각의 기능별로 함수로 쪼개어서 로직을 짜줘야 한다는것을 배워 이번 리팩토링에 적용해보기로 했다. 일단은 어떻게 순차적으로 위에서 아래로 내려갈지 생각을 해봐야한다. 로그인창을 사용자가 이용할때 우선 아이디 혹은 비밀번호창에 입력값이 들어가게 되고 그 입력값을 받아서 로그인 조건에 맞..
TIL 11 인스타그램 로그인창 구현 위 사진이 직접 구현한 로그인창 모습이다. 아이디창과 비밀번호창에 둘 다 최소한 한글자 이상 입력이 되어야 로그인 버튼이 활성화 되는 로직을 구현해봤다. 위 gif를 보면 나오지만 둘 중 하나라도 입력값이 없으면 로그인 버튼이 비활성화 되는것을 볼 수 있다. 저걸 어떻게 구현했는지 밑에 코드로 설명해보겠다. inputId, inputPassword, button 변수에 각각 아이디 패스워드 input 태그와 버튼 태그를 querySelector로 담은 코드다. 그리고 밑에 inputs변수에 input태그들을 전부 다 지정하는 querySelectorAll로 지정했다. 01. querySelector vs querySelectorAll document.querySelector은 일치하는 선택자들 중 일치하..
TIL 10 리눅스 기초명령어 1. cd cd명령어는 원하는 디랙토리로 이동하는 명렁어다. 2. ls ls명령어는 현재 경로 내 파일 목록을 출력해주는 명령어다. ls -al로 명령어를 내리면 숨겨져있는 파일들까지 전부 다 출력해준다. 3. pwd pwd명령어는 현재 경로를 출력해주는 명령어이다. 4. mkdir mkdir명령어는 디랙토리를 새로 생성하는 명령어이다. test라는 빈 디랙토리에다가 test1이라는 새로운 디랙토리를 생성한거다. 5. rm -r rm명령어는 디랙토리를 삭제할때 사용하는 명령어이다. 주로 rm -r이라는 옵션을 같이 이용해서 삭제를 한다. 6. touch touch명령어는 파일을 생성할때 사용하는 명령어이다. 7. vi vi 명령어는 파일을 작성할 수 있게 하는 명령어이다. i키로 작성을 시작할 수 있고 ..
TIL 09 문제 분할 정복 아래 설명을 읽고 getExamResult 함수를 구현하세요. 인자 scores 는 다음과 같은 객체입니다. 객체의 요소의 갯수 및 키의 이름들은 달라질 수 있습니다. 객체의 값은 다음 9가지 문자열 중에서 하나를 가지고 있습니다. 'A+', 'A', 'B+', 'B', 'C+', 'C', 'D+', 'D', 'F' { '생활속의회계': 'C', '논리적글쓰기': 'B', '독일문화의이해': 'B+', '기초수학': 'D+', '영어회화': 'C+', '인지발달심리학': 'A+', } 인자 requiredClasses 는 다음과 같이 문자열로 된 배열입니다. ['영어회화', '기초수학', '공학수학', '컴퓨터과학개론'] 다음 조건을 만족하는 객체를 리턴하도록 함수를 구현해주세요. scores 객체가 가..
TIL 08 배열 순회 01. for문 배열을 순회하는 가장 기본적인 방법은 for문을 이용하는거다. const arr = [1, 2, 3, 4, 5]; for(let i=0; i num*num); console.log(nums);// [1, 2, 3, 4, 5, 6] console.log(newArr);// [1, 4, 9, 16, 25, 36] 내부 콜백함수에서 인자를 하나만 받으면 배열내 값을 받는것이다. map() 메서드에 이용된 원본배열은 변하지 않는다. 03. Array.foreach() foreach() 메서드는 map메서드와 같이 배열 내의 모든 요소에 접근하지만 다른점은 따로 반환하는게 없다. for문 대신 사용하는 메서드라고 생각하면된다. let newArr = [];// 빈 배열 생성 let arr = [2..