분류 전체보기 30

[BOJ][C++] 백준 20546번: 🐜 기적의 매매법 🐜

문제https://www.acmicpc.net/problem/20546풀이성민(BNP)남은 현금으로 주식을 살 수 없을 때까지 주식 매수준현(TIMING)3일 연속 가격 상승: 전량 매도3일 연속 가격 하락: 전량 매수매수할 때는 (성민과 똑같이) 남은 현금으로 주식을 살 수 없을 때까지 매수코드#include #include using namespace std;const int DAY = 14;int bnp(int cash, vector &price) { int stock = 0; for (int i = 0; i = 0) { cash -= price[i]; stock++; } } return stock * price[DAY - 1..

[프로그래머스][C++] 체육복

문제https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이1. 모든 학생들의 체육복 수 계산    (1) 처음에 모든 학생들은 1개의 체육복을 가지고 있다.    (2) 여벌의 체육복이 있는 학생: +1    (3) 체육복을 도난당한 학생: -12. 1번 학생부터 체육복을 빌리는 경우 계산    (1) 도난당한 학생(체육복 개수: 0)은 양옆의 학생에게 체육복을 빌릴 수 있는지(체육복 개수: 2) 확인한다.    (2) 왼쪽 학생에게 우선적으로 빌린다..

[BOJ][C++] 백준 1212번: 8진수 2진수

문제https://www.acmicpc.net/problem/1212풀이💡 8진수 한 자리는 2진수 세 자리로 변환할 수 있다.(ex) 0 → 000, 1 → 001, ... , 7 → 111 1. 0 ~ 7 을 2진수로 변환한 문자열 배열을 생성한다.2. 입력받은 8진수 수를 앞에서부터 한 자리씩 2진수로 변환한 문자열로 출력한다.    *이때, 맨 앞의 수가 0으로 시작하지 않도록 int로 변환한다. 🚨 자릿수 유의    - 주어지는 수의 길이는 333334 이하이고 이진수로 변환하면 333334*3이다.    - 맨 앞의 수만 int형으로 바꾸지 않고 전체를 int형으로 바꾸면 범위를 초과한다. 코드#include #include using namespace std;int main() { ..

[BOJ][C++] 백준 9184번: 신나는 함수 실행

문제https://www.acmicpc.net/problem/9184풀이문제에 나와있는 함수를 작성하면 아래와 같다.int w(int a, int b, int c) { if (a 20 || b > 20 || c > 20) return w(20, 20, 20); else if (a  재귀의 횟수를 줄이기 위해 w의 결과 값을 dp 배열에 저장할 수 있다.a, b, c의 값에 따른 결과값을 저장하기 위한 3차원 dp 배열을 선언한다.w(a, b, c) 함수를 실행했을 때 배열에 이미 저장된 값이면, 재귀 과정을 생략하고 그 값을 불러온다.배열에 값을 저장할 때 인덱스에 음수 또는 20 이상의 수가 들어가지 않도록 유의한다.코드#include #include using namespac..

[SWEA][C++] 1209. [S/W 문제해결 기본] 2일차 - Sum

문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13_BWKACUCFAYh SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com풀이각 행의 합, 각 열의 합, 각 대각선의 합을 각각 구하고 비교한다.코드#include #include using namespace std;const int N = 100;int calculate(vector> &v) { int ans = 0, row_sum = 0, col_sum = 0, r_sum = 0, l_sum = 0; // 행, 열, 우하향, 좌하향 대각선 for (in..

[SWEA][C++] 2805. 농작물 수확하기

문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이중앙에 있는 행(마름모의 대각선)은 모든 열의 수익을 더한다.그리고 위로 갈수록 또는 아래로 갈수록 수익을 더하는 열이 줄어든다.이러한 점을 이용하여, 중앙 행(n/2 행)과의 차이에 따라 각 행의 수익을 계산할 수 있다.현재 행과 중앙 행의 차이 = 0일 때, 0 ~ n - 1 열의 수익을 얻을 수 있다.현재 행과 중앙 행의 차이 = 1일 때, 1 ~ n - 2현재 행과 중앙 행의 차이 = 2..

[SWEA][C++] 1208. [S/W 문제해결 기본] 1일차 - Flatten

문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV139KOaABgCFAYh SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이주어진 횟수만큼 최고점과 최저점의 차이를 줄여나간다. 정렬을 통해 문제를 해결할 수 있다.1. 상자의 높이를 오름차순으로 정렬2. 평탄화 반복    (1) 상자의 첫 번째 원소(최저점) +1, 마지막 원소(최고점) -1    (2) 상자를 재정렬    (3) 주어진 횟수를 모두 사용했거나, 최고점과 최저점의 차이가 1 이하가 되면 반복 종료3. 최고점과 최저점의 높이 차 반환코드#include#..

[SWEA][C++] 1206. [S/W 문제해결 기본] 1일차 - View

문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh& SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이건물은 왼쪽에서 3번째 칸부터 오른쪽에서 3번째 칸까지 존재한다.조망권이 확보된 세대는 왼쪽 2칸, 오른쪽 2칸에 다른 세대가 없어야 한다. 즉, 왼쪽 2칸, 오른쪽 2칸에 있는 건물보다 높으면 조망권이 확보된 세대가 존재한다. 이를 이용하여 다음과 같이 문제를 풀 수 있다.1. 왼쪽에서 3번째 건물부터 오른쪽에서 3번째 건물까지 탐색한다.    => i의 범위는 2 ~ n-3이다.2. 현재 ..

[Unity3D/VR] Oculus Integration 패키지를 이용하여 3D Object 및 UI와 상호작용하기

이전 포스트에 프로젝트 'Paint the City'에 관련한 설명이 있으니 참고바랍니다.2022.11.25 - [Paint the City] - [Unity 3D/VR] Tilt Brush, Open brush 오픈 소스를 이용하여 3D 페인팅 기능 구현하기안녕하세요. 저번 포스트에 3D 페인팅 기능에 사용할 오픈 소스를 이용하는 과정을 보여드렸는데요.저희 프로젝트의 VR 프로그램에서 3D 페인팅 기능이 주된 기능이지만, 그 외에도 구현해야 할 부분들이 많았습니다.그 중에서 가장 기본적으로 VR 환경에서 UI 또는 3D 오브젝트와 상호작용하는 법을 설명해드리려고 합니다.이 기능을 위해 에셋 스토어에 있는 Oculus Integration 패키지를 이용하였습니다.간단한 배경 설정과 오브젝트를 배치하는 것..

[Unity3D/VR] Tilt Brush, Open brush 오픈 소스를 이용하여 3D 페인팅 기능 구현하기

안녕하세요. 'Paint the City(PTC)' 프로젝트를 개발 중인 VRain 팀입니다.첫 포스팅으로 Unity에서 오픈 브러시의 오픈소스를 이용하여 3D 페인팅 기능을 구현하는 과정을 보여주려고 합니다. 프로젝트에 관해 간단히 설명드리자면, PTC는 '3D 페인팅 기반 도시 재생 지원 프로그램'으로, 선정된 도시의 모델을 제공하여 사용자들이 VR 공간에서 그림을 그리게 하고, 실제 도시에서 AR로 작품을 관람할 수 있게 하는 프로그램입니다.저희 팀은 'VR', 'AR', '도시 모델링'으로 역할을 나누었고 저는 VR을 담당하게 되었습니다.VR 기기로는 Oculus Quest 2를 사용하기로 했습니다. 프로젝트에서 3D 페인팅 기능을 구현하기 위해 '오픈 브러시(Open Brush)'의 오픈소스를 ..