이 문제는 아주 평범한 배낭에 관한 문제이다.흔히, 냅색(Knapsack) 알고리즘이라고 불리는 문제이다.최대 K만큼의 무게를 넣을 수 있는 배낭이 있을 때,무게 W와 가치 V를 가지는 N개의 물건들로 최대의 가치를 가지도록 배낭을 싸야 한다.첫 줄에 물품의 수 N(1
위 그림은 크기가 5인 정수 삼각형의 한 모습이다.맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또
이 문제는 빈 병 a개를 가져다주면 콜라 b병을 주는 마트가 있을 때, 빈 병 n개를 가져다주면 몇 병을 받을 수 있는지 계산하는 문제이다. 보유 중인 빈 병이 a개 미만이면, 추가적으로 빈 병을 받을 순 없다.콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병
지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다.어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진
매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올린다.즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 된다. k일 다음부터는 출연 가수의 점수가 기존의
45656이란 수를 보자.이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다.N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다.첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다
가장 일반적인 자바스크립트의 객체 생성 방식으로, 간편하게 객체를 생성할 수 있다. 중괄호({})를 사용하여 객체를 생성하며, {} 내에 아무것도 기술하지 않으면 빈 객체가 생성된다.new 연산자와 Object 생성자 함수를 호출하여 빈 객체를 생성할 수 있다. 빈 객
배열의 일부분을 추출하여 새로운 배열을 반환한다. 즉, 원본 배열은 변경되지 않는다.start : 추출을 시작할 인덱스 번호undefined 인 경우 : 0부터 slice 한다.음수 값을 사용하면 배열의 끝에서부터 역방향으로 계산한다.배열의 길이와 같거나 큰 수를 지정
Set 객체는 중복되지 않은 유일한 값들의 집합이다. Set 객체는 배열과 유사하지만 차이가 있다.배열은 데이터를 순서에 따라 저장한다. 따라서 인덱스(index)를 통해서 특정 위치에 저장되어 있는 데이터에 접근이 가능하다. 또한, 배열은 데이터의 중복을 허용한다.반
2346번: 풍선 터뜨리기1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고, i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선이 있다. 각 풍선 안에는 종이가 하
덱(Deque)은 Doubly-ended Queue의 약자로, 양쪽 끝에서 추가, 삭제가 가능한 선형 구조 형태의 자료 구조이다.덱(Deque)은 스택과 큐의 장점을 모아서 만들어진 형태이다.pushFront + popBack 또는 pushBack + popFront는
12789번: 도키도키 간식드리미사람들은 현재 1열로 줄을 서있고, 맨 앞의 사람만 이동이 가능하다. 인규는 번호표 순서대로만 통과할 수 있는 라인을 만들어 두었다. 이 라인과 대기열의 맨 앞 사람 사이에는 한 사람씩 1열이 들어갈 수 있는 공간이 있다. 현재 대기열의
object(객체)는 참조형이기 때문에 key, value값 및 순서가 같은 object를 === 으로 비교할 수가 없다. 즉, 참조형을 원시형으로 바꾸어서 비교해주어야 한다.
자료의 한 쪽 끝에서 삽입, 삭제가 같이 일어나는 스택과는 달리Queue는 자료의 한 쪽 끝에서 자료가 삽입되고, 그 반대쪽 끝에서 자료가 삭제되는 구조이다.참고로, 자료의 추가는 enQueue, 삭제는 deQueue라고 한다.큐에서 핵심이 되는 포인터가 2개 있는데,
a와 b의 최대공약수는 (a를 b로 나눈 나머지)와 b의 최대공약수와 같다.큰 수를 작은 수로 나누어 구한 나머지로 큰 수를 대체한다.큰 수를 작은 수로 계속 나누어서, 나누어 떨어질 때까지 반복한다.나누어 떨어질 때(나머지가 0일 때), 나누는 수가 최대공약수이다.a
1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수소수인지 검사하는 함수(isPrime)를 만든다.1부터 100 사이의 소수를 구하는 파이썬 코드위의 코드는 해당 수보다 작은 모든 수로 나누어 소수인지를 판단하는 방법이다.한 개의 소수를 구할 때는 괜찮지만 해당
스택은 블록을 아래에서부터 위로 쌓아 올리는 구조를 가지고 있으며, 가장 마지막에 들어간 원소가 가장 먼저 나오게 된다.이러한 자료구조의 특성을 LIFO(Last-in, First-out)라고 한다.스택의 연산은 Push, Pop으로 단순하다.Push 연산 시 가장 위
생성자 함수(Constructor function) 생성자는 객체를 생성하기 위한 함수이다. 생성자는 다른 함수들과 달리 대문자로 시작한다. 자바스크립트에서 생성자는 new 연산자를 통해 호출할 수 있다. new 연산자를 사용하지 않으면 생성자를 반환할 수 없기 때문
Java에서의 this는 인스턴스 자신(self)을 가리키는 참조변수이다. this가 객체 자신에 대한 참조 값을 가지고 있다는 뜻이다. 주로 매개변수와 객체 자신이 가지고 있는 멤버변수명이 같을 경우, 이를 구분하기 위해서 사용된다.하지만 자바스크립트의 경우 해당 함
해시 테이블은 (key, value) 형식으로 데이터를 저장하는 자료구조 중 하나로, key를 통해 평균 O(1)에 value를 검색할 수 있는 자료구조이다.해시 테이블은 key 값을 해시함수(Hash Function)를 사용하여 변환한 값을 index로 삼는다.해시