문제 두 자연수 M, N을 입력 받아, M부터 N까지 각 자리수의 빈도수를 합하는 프로그램을 제작하시오. 예를 들어 129와 137이 주어졌을 때, 129, 130, 131, 132, 132, 133, 134, 135, 136, 137 숫자가 나오고, 이 숫자들의 자릿수 별 숫자 빈도수를 계산하여, 0부터 9까지의 빈도수 값을 반환한다. 입력 값은 M, N은 10,000 이하의 자연수이며, 0부터 9까지의 자릿수 별 빈도수를 배열 형태로 반환한다. 입력 형식 1번 예제 : M=129, N=137 2번 예제 : M=1412, N=1918 3번 예제 : M=4159, N=9182 출력 형식 1번 예제 : [1, 10, 2, 9, 1, 1, 1, 1, 0, 1] 2번 예제 : [100, 614, 101, 10..
문제 문자열 s가 주어진다. s가 pangram 인지 판단하는 함수, solution을 완성하라. pangram이란 모든 알파벳이 사용된 문장을 말한다. 입력 형식 s는 길이가 1이상 1,000 이하인 문자열이다. s는 소문자 알파벳과 공백('')으로만 구성된다. 출력 형식 문자열이 pangram인지 구한다. 문자열이 pangram이면 true, 그렇지 않으면 false를 출력한다. 내 풀이 function solution(s) { let map = new Map(); const alphabet = Array.from({length : 26}, (_,i) => String.fromCharCode(97+i)); let strSet = [...new Set(s)]; strSet.forEach((v,i) =>..
문제 문자열 S 는 이진수로 표현된 양의 정수이다. 해당 정수에 대해서 아래의 연산을 수행한다. - 만약 숫자가 짝수인 경우 해당 값을 2로 나눈다. - 만약 숫자가 홀수인 경우 1을 뺀다. 연산의 결과가 0이 될 때까지 위 동작을 반복해서 수행했을 때, 수행된 연산의 횟수를 구하는 프로그램을 구현하라. 입력 형식 이진수로 이루어진 문자열 S 출력 형식 결과가 0이 될 때까지 필요한 연산 횟수를 정수로 반환 제약 사항 0 < S.length
문제 숫자로 이루어진 문자열 s가 있습니다. 이 문자열에서 가장 많이 등장하는 0 ~ 9 사이의 숫자를 출력하는 프로그램을 구현하세요. 단, 가장 많이 등장하는 수가 여러 개라면, 그 중 가장 작은 수를 반환하세요. 입력 형식 s 는 숫자로 이루어진 문자열 출력 형식 가장 많이 등장하는 수를 정수로 반환 제약 사항 0 { let count = [...s].reduce((a,c) => c === v ? a += 1 : a, 0); if(max < count) {max = count; result = +v} else if (max === count) { result = Math.min(r..
padStart() padStart 함수는 문자열의 앞부분을 특정 길이로 채우는 역할을 한다. 기본 문법은 아래와 같다. str.padStart(targetLength[, padString]) str : 원본 문자열 targetLength : 목표로 하는 문자열 길이를 나타낸다. 이 길이에 맞게 문자열이 채워질 수 있다. padString (옵션) : 필요한 경우 채우기에 사용할 문자열이다. 기본값은 공백 문자열(' ')이다. 아래는 예시 코드이다. const str = "123"; const paddedStr1 = str.padStart(7, "0"); console.log(paddedStr1); // 출력 : "0000123" const paddedStr2 = str.padStart(10); cons..
[운영체제] 페이징이란?(1) / 페이지 테이블, 페이징 동작 순서 페이징(Paging) 프로세스는 생성되면 실제 필요한 데이터를 일정한 특정 단위의 메모리로 조각낸다. 이 조각낸 메모리들은 모두 크기가 같으며, 조각낸 것들을 묶어서 물리 메모리에 넣고 필요할 jerryjerryjerry.tistory.com 이전 포스팅 글의 내용에서 다뤘던 페이징이 일어나는 순서에 대해서 다시 요약해보겠다. 페이징 동작 순서 큰 틀로 요약 ① CPU가 특정 프로세스를 실행시키기 위해 가상 주소를 운영체제에게 요청한다. ② 이 가상 주소를 받아서 처리하는 것은 MMU이다. MMU가 맨 처음 CPU에 있는 CR3 레지스터에 접근하여, 메모리에 있는 처리할 프로세서의 페이지 테이블의 주소를 가져온다. MMU는 특정 프로세스..
페이징(Paging) 프로세스는 생성되면 실제 필요한 데이터를 일정한 특정 단위의 메모리로 조각낸다. 이 조각낸 메모리들은 모두 크기가 같으며, 조각낸 것들을 묶어서 물리 메모리에 넣고 필요할 때 조회하며, 필요없어지면 다시 프로세스에게 반환한다. 프로세스는 작업을 처리하기 위해 가상 주소를 CPU에게 전달하며, CPU는 받은 가상주소를 물리주소로 변환하고 데이터를 가져와야 한다. 이때, 특정 데이터가 들어있는 데이터 조각 묶음을 계산하는 알고리즘을 페이징이라고 한다. 각 페이지들의 크기는 같으며, 생성된 순서대로 순번을 차례대로 부여받는다. 페이지 테이블(Page Table) 페이지 테이블이란 물리 주소(physical address)의 페이지를 실제 물리 주소 정보와 매핑한 표를 담고 있는 테이블이다..
가상 메모리 등장 배경 컴퓨터는 프로세스 1개 또는 여러 개의 프로세스를 처리할 수 있다. 그리고 프로세스는 생성되면 작업을 처리하기 위해 메모리를 할당 받아야 한다. 우리의 컴퓨터는 여러 프로세스들을 처리할 수 있어야하는데, 작업을 처리하기 위해 존재하는 컴퓨터의 실제 메모리 자원은 한정적이다. 즉, 컴퓨터의 실제 메모리 공간보다 프로세스가 처리해야할 메모리 공간이 더 많을 수 있다는 말이다. 그렇다면 여러 개의 프로세스를 처리하거나, 메모리가 큰 프로세스를 처리해야할 때는 실행하지 못하는 걸까? 이 부분을 해결하기 위해 가상 메모리가 등장하게 되었다. 가상 메모리는 물리 메모리보다 큰 프로세스나 여러 개의 프로세스들을 동시에 실행시킬 수 있도록, 컴퓨터의 메모리가 무한하다고 느끼게하는 방법이다. 컴퓨..