목록전체 글 (132)
fffo
함수 매개변수(parameter) : 함수 내부로 입력을 전달 받는 변수 인수(argument) : 입력 값 코드의 재사용 → 유지보수의 편의성, 코드의 신뢰성, 코드의 가동성 함수 리터럴 함수는 객체 타입의 값이기 때문에 함수도 함수 리터럴로 생성 가능 일반 객체와 함수 객체의 다른 점 → 함수는 호출 할 수 있음, 함수 객체 고유의 프로퍼티 가짐 함수 이름은 함수 몸체 내에서만 참조할 수 있는 식별자. 생략 가능함 함수 정의 함수 선언문, 함수 표현식, Function생성자 함수, 화살표 함수(ES6)를 통해 정의 각각의 정의 방법은 미묘한 차이가 존재 함수 선언문 함수 선언문은 표현식이 아닌 문 함수 리터럴은 선언문일 수도, 표현식일 수도 있는 중의적 표현 함수 선언문에서는 함수 객체를 가리키는 주..
문제 문제 설명 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5) A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 : 5 + 16(4x4) =..
문제 문제 설명 사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는 총 n명이 입실 후 퇴실했습니다. 편의상 사람들은 1부터 n까지 번호가 하나씩 붙어있으며, 두 번 이상 회의실에 들어온 사람은 없습니다. 이때, 각 사람별로 반드시 만난 사람은 몇 명인지 구하려 합니다. 예를 들어 입실 명부에 기재된 순서가 [1, 3, 2], 퇴실 명부에 기재된 순서가 [1, 2, 3]인 경우, 1번과 2번은 만났는지 알 수 없습니다. 1번과 3번은 만났는지 알 수 없습니다. 2번과 3번은 반드시 만났습니다. 또 다른 예로 입실 순서가 [1, 4, 2, 3], 퇴실 순서가 [2, 1, 3..
원시 값과 객체의 비교 원시 값 : 변경 불가능한 값 변수에 할당 시 변수(확보된 메모리 공간)에는 실제 값이 저장됨 원시 값을 가진 변수를 다른 변수에 할당 시 원본의 원시 값이 복사 되어 전달. 값에 의한 전달(pass by value) 객체 : 변경 가능한 값 변수에 할당 시 변수(확보된 메모리 공간)에는 참조 값이 저장됨 객체를 가진 변수를 다른 변수에 할당 시 원본의 참조 값이 복사 되어 전달 됨. 참조에 의한 전달(pass by reference) 원시 값 변경 불가능 하다는 것은 변수가 아닌 값에 대한 진술 데이터의 신뢰성 보장 원시 값이 할당된 변수를 재할당 시 새로운 메모리 공간 확보 후 재할당한 원시 값을 저장, 변수는 새로옵게 재할당한 원시 값을 가리킴 → 불변성 불변성을 갖는 원시 ..
문제 문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 제한사항 n은 10,000 이하의 자연수 입니다. 입출력 예 n result 15 4 입출력 예 설명 입출력 예#1 문제의 예시와 같습니다. 접근 및 풀이 1부터 순차적으로 합산하면서 n보다 작으면 다음 수를 더하고 작으면 빼는 수의 다음 수를 빼면..
문제 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 아래 예시는 캐릭터가 상대 팀 진영으로 가는 두 가지 방법을 나타내고 있습니다. 첫 번째 방법은..
그래프 그래프정의 그래프탐색 위상정렬 최소신장트리 최단경로검색 그래프의 정의 정점의 모음과 이 정점을 잇는 간선의 모음 정점의 집합을 V, 간선의 집합을 E, 그래프를 G라고 했을 때, G = (V, E)이다 사이클 : 정점 하나를 두 번 이상 거치는 경로 인접 : 간선으로 연결 되어있는 두 정점의 관계 (이웃) 연결성(connectivity) : 그래프의 연결성 : 그래프 내 각 정점들이 모두 연결되어 있을 때 정점의 연결성 : 두 정점간 경로가 존재 할 때 그래프 표현 정점 간의 인접 관계를 어떻게 나타낼 것인가? → 2차원 배열 혹은 리스트 인접 행렬(Adjacency Matrix) N개의 정점이 있을 때, N x N 행렬에서 각 원소가 인접해있는 경우 1로, 아니면 0으로 표기 그래프가 무방향성을..
객체 리터럴 객체란 0개 이상의 프로퍼티로 구성된 집합. 프로퍼티는 키와 값으로 구성됨 js는 객체 기반의 프로그래밍 언어, 원시 값을 제외한 나머지 값들은 모두 객체 원시 타입 : 하나의 값을 가짐 변경 불가능한 값(immutable value) 객체 : 다양한 타입의 값을 가짐 변경 가능한 값(mutable value) 모든 값은 프로퍼티 값이 될 수 있음 js의 함수는 값으로 취급할 수 있는 일급 객체임 프로퍼티 값으로 함수가 올 경우 일반 함수와 구분하기 위해 메서드라고 부름 객체 리터럴에 의한 객체 생성 클래스 기반 객체지향 언어(C++, java) : 클래스를 사전에 정의, 필요한 시점에 new 연산자와 함께 생성자(constructor)를 호출하여 인스턴스를 생성하는 방식으로 객체 생성 인스..