반응형

분류 전체보기 626

[P3] 백준 2820번 자동차 공장 C++ 세그먼트 트리, 오일러 경로 테크닉, 느리게 갱신되는 세그먼트 트리

리뷰 https://www.acmicpc.net/problem/2820오일러 경로 테크닉을 통해 배열을 트리구조로 재정의 하고, 해당 정보를 이용해 세그먼트 트리를 만든다.세그먼트 트리 상에서 LazyPropagation을 통해 업데이트를 진행하고 각 쿼리마다 직원의 월급을 출력하는 문제  전역 변수MAX_N : n이 입력될 수 있는 최대값, 500001로 초기화 한다.n, m : 직원의 개수 n, 쿼리의 개수 mnodes : 각 직원의 초기 월급을 저장할 정수형 배열tree : 세그먼트 트리를 저장할 정수형 배열lazy : 세그먼트 트리의 업데이트 정보를 저장할 정수형 배열it : 오일러 경로 탐색을 통해 직원의 시작 인덱스를 저장하기 위한 정수형 배열sal : 오일러 경로에서 구한 인덱스를 기준으로 ..

임베디드 IoT, 아두이노 ESP32 보드

ESP32wifi + Bluetooth 가 내장된 MCU 보드이다.아두이노를 IDE로 사용가능한 보드로 IoT프로젝트에 매우 많이 사용되는 MCU 보드이다. 능력 대비 가격이 매우 저렴하다는 장점이 있다.  Arduino IDE 설치아두이노는 오픈소스이다.아두이노 공식 홈페이지에 접속해서 IDE를 설치한다https://www.arduino.cc/ Arduino - Home www.arduino.cc SOFTWARE 탭 클릭 후 IDE를 설치하면 된다.설치가 완료 되었다면 파일 -> 기본 설정을 클릭하여 언어를 한국어로 변경할 수 있다. 이후 ESP32 보드를 추가해야 사용할 수 있다.추가 보드 관리자에 URL을 추가해 준다. https://dl.espressif.com/dl/package_esp32_in..

임베디드/IoT 2024.11.07

임베디드 IoT

개요IoT(Internet of Things)는 사물 인터넷으로 사물들이 서로 연결 되어 있다는 것을 의미한다.각종 사물에 센서와 유/무선 통신 기능을 내장하여 인터넷에 연결하는 기술을 말한다.이름에서도 알 수 있듯 IoT는 유무선 상관없이 인터넷에 연결되어야 한다.  활용 사례IoT는 초기 대기업이나 전문 분야에 주로 사용되었다.요즘은 임베디드 시스템의 소형화, 고성능화로 인해 일반인도 손쉽게 구현이 가능해 졌다.스마트팜스마트 팩토리홈오토메이션헬스케어실버산업운송인공지능무인공장자율주행웨어러블위 분야 외에도 굉장히 많은 분야에 활용이 가능하다.홈 IoT를 통해 내가 원하는 기능을 커스텀하여 내 집에 적용할 수도 있다.실제로 삼성과 LG에선 관련 API를 제공하고 있다.https://developer.sma..

임베디드/IoT 2024.11.07

[P5] 백준 1989번 부분배열 고르기 2 C++ 세그먼트 트리

리뷰 https://www.acmicpc.net/problem/1989 [P5] 백준 2104번 부분배열 고르기 C++ 세그먼트 트리리뷰 https://www.acmicpc.net/problem/2104구간의 누적합과 최소값의 인덱스를 저장한 세그먼트 트리를 구현하고 구간의 누적합 * 구간의 최소값이 가장 큰 케이스를 찾아 출력하는 문제  전역 변수n :zzzz955.tistory.com위 문제와 동일하나 구간의 범위까지 출력해 주어야 하는 문제  전역 변수MAX_N : n값의 최대값을 저장할 정수형 상수 변수n : 배열의 길이를 저장할 변수nodes : 배열의 정보를 저장할 정수형 배열, 크기는 MAX_NminTree : 최소값의 인덱스를 저장할 세그먼트 트리, 크기는 MAX_N * 4Res : 구간의..

[P5] 백준 2104번 부분배열 고르기 C++ 세그먼트 트리

리뷰 https://www.acmicpc.net/problem/2104구간의 누적합과 최소값의 인덱스를 저장한 세그먼트 트리를 구현하고 구간의 누적합 * 구간의 최소값이 가장 큰 케이스를 찾아 출력하는 문제  전역 변수n :주어지는 배열의 길이MAX_N : n의 최대값nodes : 배열 정보를 저장할 정수형 배열, 크기는 MAX_N으로 세팅한다.minTree : 최소값의 인덱스를 저장할 세그먼트 트리 크기는 MAX_N * 4sumTree : 구간의 합을 저장할 세그먼트 트리 크기는 MAX_N * 4 함수1. minBuildvoid minBuild(ll node, ll s, ll e) minTree를 초기화 하기 위한 함수리프 노드에 s혹은 e로 각 배열의 인덱스를 저장해 준다.리프 노드가 아닐 경우 s ..

[P5] 백준 1725번 히스토그램 C++ 세그먼트 트리

리뷰 https://www.acmicpc.net/problem/1725주어진 히스토그램에 대해, 가장 큰 직사각형의 넓이를 구하는 문제세그먼트 트리를 활용해 히스토그램의 각 높이를 비교하고 구간에서 가장 작은 높이의 인덱스를 관리해 준다.query를 수행하며 각 구간에서의 가장 작은 높이를 가진 막대 기준으로 만들 수 있는 사각형의 최대 넓이를 구한다.  전역 변수n : 주어지는 히스토그램의 개수MAX_N : n이 입력될 수 있는 최대의 수, 10만으로 저장했다.nodes : 히스토그램의 정보를 저장할 정수형 배열, 크기는 MAX_N으로 초기화 한다.tree : 세그먼트 트리 정보를 저장할 정수형 배열, 크기는 MAX_N * 4로 초기화 한다. 함수1. buildvoid build(int node, in..

[G4] 백준 14499번 주사위 굴리기 C++ 구현, 시뮬레이션

리뷰 https://www.acmicpc.net/problem/14499맵 상에서 주사위를 굴려 맵과 주사위의 정보를 변경하고, 유효한 굴림 마다 주사위의 위쪽에 저장된 값을 출력하는 문제처음엔 각 구른 상태를 적절히 더하거나 빼주어 모듈러 연산을 하려 했으나 값이 일치하지 않았다.결국 전개도를 펼쳐 구현하였는데 오히려 이게 더 쉽고 빨랐던 것 같다.  전역 변수dx, dy : 주사위가 맵 상에서 움직이는 것을 구현하기 위한 방향 배열lst : 맵 정보를 입력 받을 정수형 2차 배열, 20 * 20 크기로 초기화 해준다.n, m : 맵의 세로 크기n, 맵의 가로 크기 msx, sy : 주사위의 시작 지점 x, y좌표를 받기 위한 변수k : 주사위를 굴릴 쿼리의 개수dice : 주사위의 각 면의 값을 저장..

[UE4] 언리얼 엔진 클래스, UCLASS, UPROPERTY

개요UE4 에서 C++ 클래스와 구조체의 생성 방법을 알아보자UE4의 클래스는 표준 C++클래스이며 UCLASS라고 부른다.UCLASS는 UE4 매크로를 다수 포함한 C++클래스다.이 매크로는 UE4 편집기와의 통합을 도와주는 추가 C++ 헤더 코드를 생성한다. ULCASS 매크로를 제대로 구성하면 UCLASS를 복제하거나 재사용 할 수 있게 만들어서 커스텀 C++ 오브젝트를 언리얼의 비주얼 스크립팅 언어 블루프린트 내에서 사용할 수 있게 된다.즉 코드에 접근하지 않고도 프로젝트의 여러 형상에 접근하고 수정할 수 있게 된다. 텍스트 필드, 슬라이더, 모델 선택 상자와 같은 편리한 UI 위젯의 편집 속성을 사용할 수도 있다.  UCLASS 작성new와 delete 연산자를 사용해 커스텀 오브젝트를 생성하고..

[UE4] 언리얼 엔진4 핫 리로딩, 로그, FString

핫 리로딩언리얼 엔진 4 C++ 프로젝트를 생성했을 때, 비주얼 스튜디오와 언리얼 엔진 4가 동시에 열린다.클래스를 변경했을 때 효과를 살펴보기 위해 실제로 클래스를 사용해 보자 편집 -> 프로젝트 세팅 -> 맵 & 모드 -> 기본 게임모드에서 자신이 선택한 이름의 게임모드로 변경해준다.게임 모드는 게임 타입의 규칙을 포함하는 클래스이다.  비주얼 스튜디오의 솔루션 탐색기에서 미리 생성된 파일들을 확인할 수 있다.  Games -> 프로젝트 명 -> Source -> 프로젝트 명에서 GameModeBase의 헤더와 cpp파일의 내용을 수정해 준다.헤더 파일에서 BeginPlay라는 함수를 public으로 선언해 주고 cpp에서는 해당 함수를 상속한다.   두 파일을 수정한 후 저장하고 언리얼 엔진에서 컴..

[UE4] 언리얼 엔진4 설치 및 프로젝트 세팅

개요언리얼 엔진4를 제대로 설정하려면 여러 단계를 거쳐야 한다.이번 글을 통해 엔진을 제대로 설치하고 설정하는 방법을 살펴본다.  에픽 게임즈 런처 다운로드우선 언리얼 엔진 공식 홈페이지로 이동한다.https://www.unrealengine.com/ko/download  1. 에픽 게임즈 런처를 설치한다.2. 로그인 및 인증을 진행한다. 3. 라이브러리로 이동하여 엔진 설치를 진행한다. 용량이 꽤 큰 편이므로 설치하기 전에 하드 디스크에 충분한 용량이 있는지 확인 후 설치를 진행한다.  설치가 완료되면 우측 상단 버튼이 실행 버튼으로 바뀐다.  프로젝트 생성UE4에서 프로젝트를 설정하려면 몇 단계의 작업이 필요하다.원하는 설정을 제대로 하려면 옵션을 잘 정해야 한다. UE4에서 생성한 각 프로젝트의 크..

728x90
반응형