문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일 때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬 트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬 트리(유저가 스킬을 배울 순서)를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬 트리 개수를 return 하는 solution ..
정리가 다 되었다면 다음과 같이 폴더를 만들어 줍니다. src ├── modules └── counter ├── action ├── types.js └── index.js └── index.js └── index.js ├── App.js └── index.js 그리고 action/types.js에 reducer에서 사용할 type을 정해줍니다. // modules/counter/action/types.js export const INCREMENTED = "counter/incremented" export const DECREMENTED = "counter/decremented" action/index.js에는 action 함수와 action의 타입을 만듭니다. // modules/counter/actio..
Problem (문제) Sam's house has an apple tree and an orange tree that yield an abundance of fruit. In the diagram below, the red region denotes his house, where s is the start point, and t is the endpoint. The apple tree is to the left of his house, and the orange tree is to its right. You can assume the trees are located on a single point, where the apple tree is at point a, and the orange tree is..
LifeCycle과 Hook이란 LifeCycle이란 컴포넌트의 생명주기를 뜻하고, 이 메서드를 오버라이딩해서 특정 시점에 코드가 실행되도록 설정할 수 있습니다. Hook은 React 버전 16.8에서 추가되었고 class를 사용하지 않고 생명주기를 사용할 수 있게 해줍니다. 이 생명주기를 잘 사용한다면 빠르고 최적화된 웹 페이지를 경험할 수 있습니다. LifeCycle constructor() constructor(props) { super(props) this.state = { count: 0 } } React 컴포넌트의 생성자는 해당 컴포넌트가 생성되기 전에 실행됩니다. 이 메서드를 구현할 때 super(props)를 해주어야 합니다. 그렇지 않으면 this.props가 생성자 내에서 정의되지 않아..
Webpack이란 Webpack은 Module Bundler이다. 주요 목적은 브라우저에서 사용하기 위해 자바스크립트 파일을 하나로 묶는 것이고 다른 파일들도 변환하고 묶을 수 있다. Module이란 다른 코드에서도 쉽게 접근할 수 있도록 캡슐화해놓은 재사용가능한 코드 조각이고, Webpack은 이러한 코드 조각을 하나로 통합시켜주는 작업을 한다. Module Bundler를 사용하는 이유 Module Bundler를 사용하는 이유는 여러 개의 파일을 하나로 묶어주기 때문에 파일의 크기를 줄일 수 있어 페이지의 로딩 속도가 빨라진다. 그리고 Babel을 사용하여 ES6 버전 이상의 문법을 사용할 수 있게 해준다. 또한, HTML에서 태그를 사용하면 여러 파일을 불러오는데 오래 걸리고, 아래의 코드처럼 다..
Difficulty Easy Language Javascript Problem (문제) You are in charge of the cake for your niece's birthday and have decided the cake will have one candle for each year of her total age. When she blows out the candles, she’ll only be able to blow out the tallest ones. Your task is to find out how many candles she can successfully blow out. 당신은 당신의 조카 생일을 위해 케이크를 담당하고 있으며 케이크는 그녀의 연령만큼 양초를 가질 것이라고 결..
Difficulty Easy Language Javascript Problem (문제) Consider a staircase of size n=4: n=4인 계단이라면: # ## ### #### Observe that its base and height are both equal to n, and the image is drawn using # symbols and spaces. The last line is not preceded by any spaces. 밑변과 높이가 n과 같고 # 기호와 공백을 사용하여 이미지가 그려지는 것을 확인할 수 있다. 마지막 줄에는 공백이 없다. Write a program that prints a staircase of size n. 크기가 n인 계단을 출력하는 프로그램..
문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범으로 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한 사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수..