본문 바로가기

분류 전체보기

(41)
[BOJ/C++] 14713 앵무새(큐) 앵무새 여러 마리가 한 문장씩 말하는데 이때 단어를 순서대로 조합해서 마지막에 입력된 문장을 만들 수 있는지 판별하는 문제순서와 단어의 유무를 고려해야한다!! 또한 앵무새가 말한 단어가 모두 쓰였는지도 고려해야한다.먼저 말한 단어 순서대로 조합해야하므로 FIFO(first in first out)인 queue를 사용하여 문제를 풀 수 있다. k.back() → k의 가장 뒤 원소를 가리킴k.front() → k의 가장 앞 원소를 가리킴k.pop() → k의 가장 앞 원소를 삭제k.size() → 큐 사이즈 반환k.empty() → 비었는지 bool 값 반환k.emplace(3) → push와 같은 역할k.swap(k_1) →k_1과 k의 원소 바꾸기 #include#include #include #i..
[BOJ/C++] 10025 게으른_백곰(누적합, 슬라이딩 윈도우) 처음에는 이 문제를 누적합과 투포인터를 사용해서 풀었다.#includeusing namespace std;int main(){ int n, k, g, point; cin >> n >> k; int st=0, end = k-1, mx=0, mxp =0; int x[1000001] = {0}; int sum[1000001] = {0}; for(int i=0; i> g >> point; x[point] = g; if(mxp k*2){ st ++; } //cout mx){ mx = sum[end]-sum[st-1]; } end ++; } cout 메모..
[BOJ/C++] 1940 주몽(투포인터) n개의 숫자중에서 2개를 골라 M이 되는 경우의 수를 구하는 문제이다. 이중 반복문을 통해서 모든 경우의 수를 확인하는 방법도 있지만 이렇게 하면 시간 복잡도가 O(n^2)인데 투포인터를 사용한다면 O(n)으로 풀 수 있다. 투포인터는 두개의 포인터를 사용해 탐색하는 기법이다. 이 문제에서는 정렬 후에 처음과 끝 부분에 포인터를 두고 두 수의 합이 m보다 작다면 앞에 있는 포인터를 옮기고, m보다 크다면 뒤에 있는 포인터를 옮겨 m이 되는 경우를 찾으면 된다#include#includeusing namespace std;int main(){ int n, m, cnt=0; int clothes[15000]; cin >> n >> m; for(int i=0; i> clothes[i]; ..
[BOJ/C++] 11051 이항계수 2 https://www.acmicpc.net/problem/11051 이항계수란 n개 중에 k개를 순서 없이 뽑는 조합의 수를 의미한다. 조합을 만들때 원소를 뽑거나, 안뽑거나 라는 두가지 선택지가 있기에아래와 같은 식으로 나타낼 수 있다.이렇게 팩토리얼로 나타낼 수도 있지만 이를 알고리즘으로 짜다가는 금방 overflow를 맞이할 것이다. 그렇기 때문에 아래 점화식을 사용하여 dp로 푸는 것이 더 효율적이다. 또한 이전 행의 값만 알면 다음 행을 구할 수 있기 때문에 일차원으로 구현하면 이항계수의 값만 큼 즉 (N*N+1)/2 개의 공간만으로도 표현 가능하다. #includeusing namespace std;int main(){ int n,k; cin >> n >> k; int dp[..
[BOJ/C++] 1713 후보 추천하기 https://www.acmicpc.net/problem/1713 #include#include#include using namespace std;int n, t;int total[101] ={0,};vector gallery;void insert(int st){ gallery.push_back(st); total[st]++;}int main(){ cin >> n; cin >> t; while(t--){ int st; cin >> st; if(find(gallery.begin(), gallery.end(), st) != gallery.end()){ // 갤러리에 있는 후보면 추천수만 증가 total[..
[5주차] yocto 이미지에 c 파일 패키지 포함하기 (Hello World 프로젝트 넣기) 이번주에는 커스텀 레이어를 만들어 c로 작성한 패키지를 만들어 이미지에 포함시킬 것이다. 목표는 qemu를 실행시키고 helloworld라는 명령어를 입력했을때 ----hello world!!!를 출력하게 만드는 것이다. 1. 패키지용 레이어 생성$bitbake-layers create-layer meta-helloworld 2. c파일 작성 및 압축강의를 참고하여 레이어에 recipes-hello를 추가하고 hellowolrd라는 폴더를 만들어 패키지 구조를 생성하였다. 실행될 helloworld.c 파일은 다음과 같다 작성 후 tar 명령어로 폴더를 압축해준다 위 사진에서 마지막에 붙은 /를 빼줘야 나중에 bitbake가 경로를 올바르게 찾아간다 왜냐하면 tar -czvf helloworld...
[3주차] yocto layer 구성 파일 및 custom layer 생성, 패키지 추가 저번 글에서 아래 사진과 같이 yocto는 layer구조로 되어있다는 것을 볼 수 있었다poky를 클론하여 각각의 폴더를 살펴보며 layer에 대해 더 자세히 알아보자 첫번째로 oe-core에 대한 정보는 meta 폴더에 저장되어있다. oe-core는 모든 임베디드 리눅스 빌드의 기반이 되는 핵심 레시피, 클래스 파일, 설정 파일, 라이브러리, 유틸리티 등이 포함되어 있는 메타레이어다. meta-poky는 배포레이어이고 동기화와 관련된 정책을 설정할 수 있다. 만약 x용으로 빌드한다면 여기에 모든 것을 x용으로 빌드하라는 정책을 추가할 수 있다. 또한 모든 것이 x용으로 빌드 되지 않도록 설정할 수도 있다. 그 위에는 실제 하드웨어와 관련된 정보(아키텍처, 커널 빌드 방식, 옵션 등)가 담긴 bsp la..
[3주차] YOCTO core-image-weston 빌드 https://byeolhabae.tistory.com/35 [3주차] 임베디드 OS, Yocto Project 구성 및 컨셉먼저 이번 오픈소스 컨트리뷰션의 주제인 Yocto에 대해 간략히 말하자면 임베디드 리눅스를 만들때 사용하는 빌드 프레임워크이다. 그렇다면 임베디드 리눅스가 무엇인지, 어디에 사용되는지,byeolhabae.tistory.com 이전 시간에 YOCTO project가 어떤 것인지에 대해 알아보았다. 이번 포스팅에서는 YOCTO project를 빌드하는 방식에 대해 적어보고자 한다. 간략하게 단계를 설명하자면 다음과 같다. 1. UTM 사용해서 Linux 환경 설정2. 필수 패키지 설치 및 poky clone 3. 빌드 후 qemu 실행 1. UTM 사용해서 Linux 환경 설정http..