전체 글

전체 글

    제코베 JS 100제 / 96 / 넓은 텃밭 만들기!

    수연이는 밭농사를 시작하기로 마음을 먹었다. 집 앞 텃밭을 만들기로 하고 돌들을 제거하고 있는데 매우 큰 바위는 옮기지 못해 고심하고 있다. 이에 수연이는 다음과 같은 규칙을 정한다. 1. 바위를(바위는 '1'로 표기한다.) 피해 텃밭을 만들되 정사각형 모양으로 텃밭을 만든다. 2. 텃밭은 가장 넓은 텃밭 1개만 만들고 그 크기를 반환한다. 3. 만든 텃밭은 모두 '#'으로 처리한다. /** * 2차원 배열인 텃밭 배열을 받아, * 가장 넓은 텃밭의 크기와 만든 텃밭을 출력하는 함수 * * @param {number[][]} GARDEN */ function makeWideGarden(GARDEN) { const ROW_COUNT = GARDEN.length; const COL_COUNT = GARDEN..

    제코베 JS 100제 / 95 / 도장찍기

    빈 종이에 stamp 모양으로 생긴 도장을 90*k 도로 회전하여 찍습니다. 도장은 N*N 크기이며 각 도장이 찍히는 부분은 1 이상의 자연수와 도장이 찍히지 않는 0으로 이루어져 있습니다. 도장의 크기 N과, 종이에 찍힌 도장 횟수를 표현한 stamp 배열과, 얼만큼 회전할 것인지를 알려주는 회전수 k를 입력받았을 때 각 위치에서 몇 번 도장이 찍혔는지 그 결과값을 출력하세요 /** * 2차원 배열로 구성된 도장과 회전 횟수를 인자로 받아, * 회전 횟수만큼 돌린 도장을 return 해주는 함수 * * @param {number[][]} STAMP 도장 * @param {number} ROTATE_COUNT 회전 횟수 * @returns {number[][]} 오른쪽으로 90도 회전한 도장 return..

    제코베 JS 100제 / 94 / 페이지 교체 - LRU 알고리즘

    LRU 알고리즘이란 페이지 교체 알고리즘으로써, Least Recently Used의 약자입니다. 즉 페이지 부재가 발생했을 경우 가장 오랫동안 사용되지 않은 페이지를 제거하는 알고리즘입니다. 이 알고리즘의 기본 가설은 가장 오랫동안 이용되지 않은 페이지는 앞으로도 사용할 확률이 적다는 가정하에 페이지 교체가 진행됩니다. 다음 그림을 참고해주세요. 메모리의 크기가 i로 주어지고 들어올 페이지들이 n으로 주어졌을 때, 전체 실행시간을 구해주세요. 만약 스택 안에 같은 스케줄이 있다면 hit 이라고 하며 실행시간은 1초 입니다. 스택 안에 스케줄이 없다면 miss 라고 하며 실행시간은 6초 입니다. 예제 1번을 보면 페이지 프레임의 개수는 3개이고 스케줄은 'BCBAEBCE' 입니다. 5번의 miss를 기록..

    제코베 JS 100제 / 93 / 페이지 교체 - 선입선출 알고리즘

    페이지 교체 알고리즘은 메모리를 관리하는 운영체제에서, 페이지 부재가 발생하여 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것을 교체할지를 결정하는 방법입니다. 이 알고리즘이 사용되는 시기는 페이지 부재(Page Fault)가 발생해 새로운 페이지를 적재해야 하지만 페이지를 적재할 공간이 없어 이미 적재되어 있는 페이지 중 교체할 페이지를 정할 때 사용됩니다. 빈 페이지가 없는 상황에서 메모리에 적재된 페이지와 적재할 페이지를 교체함으로 페이지 부재 문제를 해결할 수 있습니다. 이 중 선입선출(FIFO) 알고리즘은 가장 먼저 들어와서 가장 오래있었던 페이지를 우선으로 교체시키는 방법을 의미합니다. 아래의 그림을 참고해주세요. 메모리의 크기가 i로 주어지고 들어올 페이지들이 n으로 주어졌을 ..

    제코베 JS 100제 / 92 / 키보드 고장

    P 회사의 회계를 처리하던 은정은 커피를 마시다가 키보드에 커피를 쏟고 말았습니다. 휴지로 닦고 말려보았지만 숫자 3, 4, 6이 도통 눌리지 않습니다. 10분 뒤, 모든 직원들에게 월급을 입금해 주어야 합니다. 여유 키보드는 없으며, 프로그래밍을 매우 잘하고, 모든 작업을 수작업으로 하고 있습니다. 이에 눌리지 않는 키보드를 누르지 않고 월급 입금을 두 번에 나눠주고 싶습니다. 1. 직원은 2000명이며, 3초 이내 수행을 해야합니다. 2. 입력값의 형식은 csv파일형식이며 이과장,'3,000,000','S은행','100-0000-0000-0000' 형식으로 주어집니다. 3. 출력값의 형식은 csv파일형식이며 이과장,'1,500,000','1,500,000','S은행','100-0000-0000-000..

    제코베 JS 100제 / 91 / 반평균 등수

    한 반에 30명인 학생, 총 7개의 반 점수가 '국어, 영어, 수학, 사회, 과학' 순서로 있는 다중 리스트를 랜덤 한 값으로 만들어주시고 아래 값을 모두 출력하세요. 1. 반 점수 모두가 담긴 전교 점수 다중 리스트를 만들어주세요. 2. 반 평균을 구하세요. 3. 반 1등 점수를 구하세요. 4. 전교 평균을 구하세요. (출력 형식은 상관없습니다.) /** * 반의 수, 학생 수, 과목 수가 담긴 객체를 받아 랜덤으로 * 반 점수 모두가 담긴 전교 점수 다중 리스트를 만드는 함수 * * @param {Object} INFO_OBJ 반의 수, 학생 수, 과목 수가 담긴 객체 * @returns {number[][][]} 각 반으로 나누어진 리스트 return */ function makeRandomScor..