본문 바로가기

All250

[Level 2] 소수 찾기 - 완전 탐색 | C++ [문제] 인자로 0~9의 연속된 문자열이 주어지는데, 각 숫자(문자)로 만들 수 있는 소수(prime number)의 수를 구하는 문제이다. 레벨은 낮은데 뭔가 접근하기가 어려워서 구글링을 하던 도중 에라토스테네스의 체라는 알고리듬에서 아이디어를 얻었다. 에라토스테네스의 체는 간단하게 말해서 소수를 구하는 방법인데, 구하고자 하는 구간의 값을 모두 구한 뒤 그 중에서 소수가 아닌 수를 걸러내는 방법이다. 나는 위 문제에서 주어진 값을 내림차순으로 정렬하여, 주어진 수로 만들 수 있는 최대 값을 구하고, 해당 값 이하의 모든 값을 구하여 그 중에서 소수를 걸러내었다. 그리고 그 소수 중 주어진 수로 만들 수 있는 개수를 구하였다. 요약해서 단계로 나타내면 다음과 같다. 주어진 문자열(numbers)를 1개.. 2020. 5. 26.
[OS] 운영체제 연습 문제 풀이 (1) 책 이름: 개념 이해를 위한 운영체제 (21세기사) [운영체제란 무엇인지 정의하라] 운영체제란 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공해주고, 시스템의 한정된 자원을 효율적으로 관리함으로써 보다 시스템을 경제적으로 이용할 수 있도록 해주는 소프트웨어이다. [컴퓨터 시스템의 동작원리를 중심으로 운영체제의 필요성을 설명하라] 컴퓨터 시스템은 메모리에 적재된 명령어 중 PC(Program Counter) 레지스터가 가리키는 명령어를 CPU가 실행함으로써 컴퓨터를 동작시킨다. 이를 위해선 보조 기억 장치에 저장되어 있는 응용 프로그램 파일을 찾아 메모리에 적재하고 PC 레지스터가 가리키는 값을 조작하는 등의 작업이 필요하다. 이러한 작업들을 운영 체제의 커널에서 대신해주며, 우리는 운영체.. 2020. 5. 25.
[Level 2] H-Index - 정렬 | C++ [문제] 함수의 인자로 논문의 인용 횟수가 담긴 배열이 주어지는데, 여기서 H-index를 구해 반환하는 것이 문제이다. H-Index란 주어진 논문들 중 인용 횟수가 h번 이상인 논문이 h개 이상 존재하고, 나머지 논문은 h번 이하 인용된 것 중 가장 큰 h 값을 말한다. 말이 좀 어려운데 쉽게 설명해서 배열 [0, 0, 3, 6, 8, 10]이 주어졌다면, 6편의 논문들 중 h 이상의 값을 가지고 그것들이 h편 이상이면 된다. h가 0이라면 0 이상의 값을 0편 이상 가지고 있으므로 만족한다. 1이여도 만족하고 2여도 만족하고 3이여도 만족한다. 4는 4보다 크거나 같은 값이 3개밖에 없으므로 만족하지 않는다. 따라서 0,1,2,3 중 가장 큰 3이 H-Index가 된다. [풀이] 내 풀이 방법은 간.. 2020. 5. 24.
[Level 3] 베스트 앨범 - 해시 | C++ [문제] 문제 설명이 더 헷갈리게 만들어서 예제를 보고 풀었다. 문제는 간단하게 설명해보면 일단 장르와 플레이 횟수가 저장된 벡터가 인자로 주어지는데, 두 벡터의 각 요소는 쌍이다. 무슨 뜻이냐면, 위 예제에서 classic 장르의 어떤 곡의 플레이 횟수가 500, pop 장르의 어떤 곡의 플레이 횟수가 600 이런 식으로 곡의 장르와 플레이 횟수를 두 벡터에 나눠 저장해둔 것이다. 따라서 두 벡터는 크기가 동일하다. 한마디로 위 예제는 클래식 장르 3곡과 pop 장르 2곡이 담긴 리스트다. 여기서 각 장르 내에서 가장 많이 플레이된 두 곡의 인덱스(고유번호)를 차례대로 배열에 담아 반환하는 것이 문제이다. 또한 가장 많이 플레이 된 장르 순으로 저장되어야 한다. 예를 들어 A 장르의 플레이 횟수 합이 .. 2020. 5. 23.
메모리 정렬과 패킹 메모리 구조에 대해 잘 모른다면 다음 포스팅을 보고 오는 것을 추천한다. [C++] 클래스의 멤버가 저장되는 영역 및 메모리 차지 클래스 사용 도중 헷갈리던 내용이 있어서 정리함. 함수 내에서 임시로 객체를 생성할 때 사용 용도에 따라 비효율적인 부분이 있는지 헷갈려서 instance 생성 시 각 멤버들이 어떻게 메모리를 차� woo-dev.tistory.com 구조체 및 클래스는 실제로 메모리 상에 어떻게 저장될까? 먼저 다음과 같은 구조체를 생각해보자. struct Foo { uint32_t mUInt1; // 32비트 uint8_t mUint2; // 8비트 int32_t mInt1; // 32비트 bool mBool1; // 8비트 char* mCharPtr; // 32비트 }; 위 구조체의 크기.. 2020. 5. 19.
absolute center(중앙)에 고정시키기 position: absolute로 지정한 div를 중앙에 알아서 고정시키고 싶다면 다음처럼 style을 설정해주면 된다 .absolute-center { position:absolute; top:__px; // 사용자 설정 left:50%; transform:translateX(-50%); } 2020. 5. 11.