문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120831 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 답안1. function solution(n) { var answer = 0; for (let i = 2; i i + 1).filter((e) => e % 2 === 0).reduce((acc, e) => acc + e, 0) } Array(n)은 n개 만큼의 엘리먼트를 가진 배열을 만들어준다. 이때 배열 내부는 empty가 된다. empty한 배열은 map으로 순회가 안되므로 어떤 ..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120830 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 답안 function solution(n, k) { if (n >= 10) { k = k - parseInt(n / 10) } return (n * 12000) + (k * 2000); } 제한사항을 잘 보고 풀면 어렵지 않다.
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 답안 function solution(angle) { if (angle a..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 답안 function solution(num1, num2) { return (num1 === num2) ? 1 : -1 } 딱히 설명할 게 없다.
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120805 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 : 정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요. 답안1. function solution(num1, num2) { return parseInt(num1 / num2) } 또는 function solution(num1, num2) { return Math.floor(num1 / nu..
최종 코드의 결과물이다. 클릭하면 움직이는 원(circle)을 생성자 함수를 이용하여 만들어볼 것이다. 사고하는 과정을 기록하기 위해 만드는 과정 + 사고방식을 글로 적어볼 것이다. Step 1. 생성자 함수를 사용할 것이다. 웹 페이지의 빈 공간을 누를 때마다 circle 오브젝트가 생성될 것이고, 그것을 생성자 함수로 구현할 것이다. 2. 가장 먼저 해야할 것은 웹 페이지 전체를 덮은 HTML element를 만드는 것이다. 전체를 덮은 엘리멘트의 클릭 이벤트가 감지될 때마다, 이벤트 객체의 x좌표와 y좌표를 뽑아내 사용할 것이다. 3. circle의 CSS를 구상한 뒤에 Circle 생성자 함수를 작성한다. Circle object가 만들어질때마다, 원 모양의 div element를 만들어야 한다...
git squash는 여러번 커밋한 이력을 하나의 커밋 이력으로 만드는 데 사용한다. git squash를 위해 상황을 만들었다. 일단 main에서 뻗어나온 squash라는 브랜치는 커밋 기록을 3개나 가지고 있다. 이 자잘한 모든 기록들이 main 브랜치에 merge된다면 기록이 상당히 번잡해질 것이다. 이 때 git squash 기능을 사용하면 브랜치 내 커밋이 많았더라도 main에는 1개의 커밋만 남겨 merge해줄 수 있다. 방법은 매우 쉽다. 머지할 브랜치로 넘어가 아래의 명령어만 치면 된다. git merge --squash 브랜치명 git commit -m '커밋메시지'
git rebase는 main에서 뻗어나온 브랜치의 시작점(base)을 main으로 바꿔주는 기능이다. 그림으로 보면 아래와 같다. 실습 rebase 실습을 위해 위와 같이 세팅을 해놓았다. 위 branch의 커밋 상태를 그림으로 표현하면 아래와 같다. git rebase 브랜치명 rebase를 하기 위해서는 rebase를 할 브랜치에 먼저 이동한 후 rebase의 기준이 될 브랜치명을 적어주면 된다. git rebase main을 입력한 후의 그래프는 아래와 같다. 이 상태에서 merge를 해주면 rebase_branch가 fast-forward merge 방식으로 동작하여 하나의 브랜치로 합병된다.
메인 브랜치에 merge를 하더라도 브랜치는 남게된다. 브랜치가 여러개 남아있으면 관리가 복잡해질 수 있으므로 쓸모없는 브랜치들은 삭제해주는 것도 중요하다. 먼저, 내 git에 어떤 브랜치들이 있는지 확인하는 명령어부터 공부해보도록 하자. git branch (깃 브랜치 목록) 내 git 내 브랜치 목록은 아래의 명령어로 확인 가능하다. git branch git branch 삭제 깃 브랜치 삭제에는 merge가 완료된 브랜치 삭제 merge가 실행되지 않은 브랜치 삭제 두 방법이 존재한다. git branch -d 브랜치명 (merge가 완료된 브랜치 삭제) git branch -d 합병(merge)된브랜치명 git branch -D 브랜치명 (merge가 안된 브랜치 삭제) git branch -D ..
패스트 포워드 머지는 main 브랜치에서 뻗어나온 브랜치에만 commit이 있고 main 브랜치에는 commit이 없을 경우에 merge를 하면 뻗어나온 브랜치가 main 브랜치가 되는 동작 방식이다. 아래는 main에서 뻗어나온 브랜치만 commit이 있는 경우를 보여주는 그래프이다. 그림으로 보면 아래와 같다. 이와 같은 상태에서 main에 머지할 경우 fast-forward 동작 방식으로 merge된다. 즉, main 브랜치가 fast-foward가 된 것이다. (말만 어렵지, 굉장히 직관적이다.)