본문 바로가기

반응형

코드스테이츠 SEB FE 41기

(123)
[알고리즘/javascript][중복순열] 가위바위보 문제 가위바위보 게임은 2인 이상의 사람이 동시에 '가위, 바위, 보'를 외치고 동시에 가위, 바위 또는 보 중에서 한 가지를 의미하는 손 모양을 내밀어 승부를 결정짓는 게임입니다. 세 판의 가위바위보 게임을 할 경우, 한 사람은 세 번의 선택(예. 가위, 가위, 보)을 할 수 있습니다. 세 번의 선택으로 가능한 모든 경우의 수를 구하는 함수를 작성합니다. 입력 없음 출력 2차원 배열(arr[i])을 리턴해야 합니다. arr[i]는 전체 경우의 수 중 한 가지 경우(총 세 번의 선택)를 의미하는 배열입니다. arr[i]는 'rock', 'paper', 'scissors' 중 한 가지 이상을 요소로 갖는 배열입니다. arr[i].length는 3 주의사항 최종적으로 리턴되는 배열의 순서는 가중치 적용 정렬..
section4/[자료구조/알고리즘] 코딩 테스트 준비 순열과 조합 순열 순열(順列, permutation)은 서로 다른 n개의 원소를 가지는 어떤 집합에서 중복 없이 순서에 상관있게 r개의 원소를 선택하거나 혹은 나열하는 것이며, 이는 조합과 마찬가지로 n개의 원소로 이루어진 집합에서 r개의 원소로 이루어진 부분집합을 만드는 것과 같다. 순열은 조합과 달리 순서도 따져서 부분집합을 만들기 때문에 사과가 뒤로 가는 경우와 사과가 앞으로 가는 경우를 다르게 보고 각기 하나의 경우의 수로 친다. 그래서 {사과 오렌지} {오렌지 사과}가 다른 집합으로 취급된다. 순열의 식은 다음과 같다. 순열은 일반화 과정을 거쳐, Permutation의 약자 P로 표현한다. 여기서도 n은 원소의 총 개수를 의미하고, r은 그중 뽑는 개수를 의미한다. 여기서 중요한 것은, 순열은..
[알고리즘/javascript]radixSort 문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 0 이상의 정수 arr.length 100,000 이하 출력 number 타입을 요소로 갖는 배열을 리턴해야 합니다. 배열의 요소는 오름차순으로 정렬되어야 합니다. arr[i] [1, 3, 21] 힌트 기수 정렬(radix sort)은 내부적으로 계수 정렬(counting sort)을 사용합니다. 계수 정렬을 먼저 학습하고, 어떤 경우에 기수 정렬을 사용하는지 학습하도록 합니다. Advanced arr[i]의 범위가 정수 전체로 확대될 경우, 기수 정렬 알고리즘을 완성해 보세요. 계수정렬 각 요소의 배열 등장 횟수를 count해 누적합으로 나타내는 ..
section4/Unit11/[자료구조/알고리즘] 코딩 테스트 준비 시간 복잡도 문제를 해결하기 위한 알고리즘의 로직을 코드로 구현할 때, 시간 복잡도를 고려한다는 것은 한 문장으로 정리하자면 다음과 같다. 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가? 앞서 이야기했던 효율적인 알고리즘을 구현한다는 것은 바꾸어 말해 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘을 구성했다는 이야기이다. 그리고 이 시간 복잡도는 주로 빅-오 표기법을 사용해 나타낸다. Big-O 표기법 시간 복잡도를 표기하는 방법은 다음과 같다. Big-O(빅-오) Big-Ω(빅-오메가) Big-θ(빅-세타) 위 세 가지 표기법은 시간 복잡도를 각각 최악, 최선, 중간(평균)의 경우에 대하여 나타내는 방법이다. 이 중에서 Big-O 표기법이 가장 자주..
section4/Unit10/[Deploy] CI/CD Proxy CORS 정책이 필요한 이유 브라우저에서 기본적으로 API를 요청 할 때에, 브라우저의 현재 주소와 API 의 주소의 도메인이 일치해야만 데이터를 접근 할 수 있게 되어 있다. 만약 다른 도메인에서 API를 요청해서 사용 할 수 있게 해주려면 CORS 설정이 필요하다. CORS 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS : 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다. 출처: 웹 콘텐츠의 출처(origin)는 접근할 때 사용하는 URL의 스킴(프로토콜), 호스트(도메인), 포트로 정의된다. 두 객체의 스킴, 호스트, 포트가 모두 일치..
section4/Unit10/[Deploy] CI/CD CI/CD CI/CD의 "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다. CI/CD의 "CD"는 지속적인 서비스 제공(Continuous Delivery) 및/또는 지속적인 배포(Continuous Deployment)를 의미하며 이 두 용어는 상호 교환적으로 사용된다. 두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하..
[알고리즘/javascript]rotateMatrix 문제 2차원 N x N 배열을 시계 방향으로 90도 회전시킨 배열을 리턴해야 합니다. 입력 인자 1 : matrix 가로 길이(matrix[i].length)와 세로 길이(matrix.length)가 모두 N인 2차원 배열 matrix[i][j]는 number 타입 출력 2차원 배열을 리턴해야 합니다. 입출력 예시 const matrix = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], ]; console.log(matrix[0][0]); // --> 1 console.log(matrix[3][2]); // --> 15 const rotatedMatrix = rotateMatrix(matrix); console.log(rotatedMa..
section4/Unit9/[Deploy] Amazon Web Service(AWS 배포) Amazon Web Service Cloud Computing 클라우드 시스템이 존재하지 않았던 시대에는 전산실에 다수의 컴퓨터를 두고 서버를 운영하였다. 하지만 서버는 한계점이 명확하게 존재하기 때문에 수용능력이 한계에 도달하면 새로운 전산실을 구축하거나 컴퓨터를 추가로 구축을 해야했다. 이 방법은 금액적으로 또는 공간적으로도 매우 비효율적인 방법이다. 이런 상황에서 추가적인 서버 증설이 어렵게 되자 일부 거대 기업은 데이터 센터라는 거대한 건물을 세우기 시작했다. 이때부터 데이터 센터의 유휴 자원을 대여하는 서비스가 등장하기 시작했다. 즉 서버의 자원과 공간, 및 네트워크 환경을 제공을 빌려 사용하는 클라우드 컴퓨팅이 시작된 순간이다. 데이터 센터에서는 서버의 자원과 공간, 및 네트워크 환경을 제공한..

반응형