no image
백준 1629번 : 곱셈
곱셈https://www.acmicpc.net/problem/1629힌트레퍼런스 [1]을 참고했다.지수 법칙 : $a^{n+m} = a^{n} * a^{m}$모듈러 성질 : $(a*b)$%$c$ = $(a$%$c * b$%$c)$%$c$재귀 함수key hint : 분할 정복Code#include using namespace std;int a, b, c;long long int F(long long int y){ if(y==1) return a%c; long long int k = F(y/2)%c; if(y%2==0) return k*k%c; else return k*k%c * a%c;}int main() { scanf("%d %d %d", &a, &b, &c); cou..
2024.05.14
no image
백준 2805번 : 나무 자르기
나무 자르기https://www.acmicpc.net/problem/2805 이 문제의 핵심은 이분탐색이다.Code#include #include using namespace std;int main() { long long num_tree, m; cin >> num_tree >> m; vector trees(num_tree); for(int i = 0; i > trees[i]; sort(trees.begin(), trees.end()); long long min = 0; long long max = trees[num_tree-1]; long long result = 0; while(min mid) { sum += trees[i]..
2024.05.12
no image
[C++] Mutex
MUTEX GVINS 코드를 분석하면서 Mutex를 처음 접했다. Visual, inertial, gnss, pose... 수많은 함수가 각각의 데이터에 접근해야 하기 때문에 발생하는 문제를 방지해 준다. 여러 쓰레드가 데이터에 접근을 하다 보면 일명 꼬이는 상황이 발생한다. 이렇게 되면 시스템이 불안정 해지기 때문에 Mutex를 이용해서 해당 영역에 대한 접근을 제한한다. 유튜브 강의를 시청 후 간단히 정리하였다. 강의 정보는 글 하단에 기재. 일반적인 mutex 사용 #include std::mutex mutex1 mutex1.lock(); // // // Critical section(mutex로 보호하고 싶은 라인) // // mutex1.unlock(); 일반적인 mutex 단점 -> 하나의 쓰..
2024.01.21
no image
AWS와 카카오톡 채널을 이용하여 학식알리미 챗봇 만들기
제작 배경 우리는 정보가 많은 시대에 살고 있다. 하지만 어딘가에 고립된 정보는 사용자가 쉽게 접근하기 불편하다. 학교 식단의 경우 사이트에 주간별로 게시된다. 그러다보니 매일 학교 식당의 식단 정보를 얻기 위해 인터넷으로 검색하여 홈페이지에 접근하는 불필요한 행위가 반복된다. 따라서 이 프로젝트에서는 정보의 접근성을 높여 사용자의 서비스 만족도를 높이고 식단 정보를 매주 업로드하는 수고로움을 동시에 해결할 방법을 고안하고자 한다. 목표 언제 어디서든 학교 식단과 학교 식당의 운영 정보를 확인할 수 있게 한다. 또한 매주 식단을 업로드하는 수고로움을 덜고자 식단을 한 달에 한 번만 서버에 업로드하여 효율성을 높이고자 한다. 또한 제작한 서비스가 실질적으로 사용이 가능하도록 한다. 개발 내용 사용자의 접근..
2023.06.28
no image
[파이썬] 컴퓨터 비전 - 이미지 잘라내기
과제 사용자가 마우스 드래그로 지정한 영역을 잘라내도록 프로그래밍 하시오. 해결법 마우스 이벤트 콜백함수로 사용자가 드래그를 시작한 지점 ix, iy와 끝낸 지점 x, y를 저장한다. (ix, iy), (x, y)의 위치에 따라 인덱싱의 범위가 달라지므로 cut_image 함수를 정의하여 if문 처리를 해준다. 만약 사용자가 드래그를 했을 때 두 점이 동일선상에 위치하여 직선이 되는경우와 두 점이 일치하는 경우는 잘라내기를 할 수 없다. 위와 같은 예외상황이 발생시 함수를 종료하고 사용자에게 다시 지정하게끔 안내한다. 코드 # [코드 설명] # 사용자가 마우스 드래그로 지정한 영역을 잘라내는 프로그램이다. # cut_image()라는 함수를 만들었으며 어느 방향에서 드래그를해도 잘라내기가 가능하게 코딩하..
2023.03.27
no image
[파이썬] 데이터프로그래밍실습 - 369게임 만들기
과제-1 1에서 n까지 자연수에 대한 3,6,9 게임 결과를 출력한다. 조건 반드시 함수를 이용한다. 하나의 숫자를 매개변수로 출력값을 리턴하는 함수를 작성한다. 그리고, 이 함수를 이용하여 1에서 n까지의 3,6,9 게임 프로그램을 작성한다. 10 단위로 다음 줄에 출력한다. 실행 결과 예시 구현 결과 함수를 이용해서 해보라고 제시가 되었다. 하지만 백준 알고리즘처럼 러닝타임을 계산하는 게 아니기 때문에 클래스도 연습할 겸 아래와 같이 작성했다. class game_369: def __init__(self, num_user = 0): self.num_user = num_user self.num_arr = [] def f369(self, num): #숫자를 분해하여 3으로 나누어 떨어지는 수 찾기 ten..
2023.03.21
no image
백준 2750번 : 수 정렬하기
정렬 알고리즘https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.www.acmicpc.net 정렬 알고리즘 섹션에서 비교적 쉬운 문제이지만 조금 색다르게 풀어보기 위해 배열을 이용하였다. 어떻게 보면 저번에 학습한 배열파트를 잊지못해 적용해보고자 풀이해봤다. #include using namespace std;int main(){ int N = 1; int n = 0; int a[2000] = {}; //0이상 1000이하의 정수를 담을 배열 int b[2000] =..
2022.02.20
no image
백준 2798번 : 블랙잭
모든 항목을 검사하는 방법 : 브루트 포스주어진 N개의 자연수 중에서 세 개를 뽑는다.경우의 수를 따져서 모든 항목을 검사하여 최댓값 M에 가장 가까운 수를 출력하는 문제이다. 생각의 흐름대로 가다보니 삼중for문을 사용하는 방식으로 가긴 했다만..물론 다른 방법도 있지만 삼중for문이 가장 적당한 풀이법 같았다.원초적인 방법이고 처음 써보려니 막힌다. 내가 작성한 정답코드는 다음과 같다. #include using namespace std;//1. 세 수를 더해서 21 이상은 걸러//2. 거른수중에서 최댓값int main(){ int N, M, q, w, e, sum, goal = 0; int min = 9999999; int a[100] ={0}; cin>>N>>M; ..
2022.02.15
no image
백준 5622번 : 다이얼
ASCII와 논리연산자를 이용한 알고리즘제가 작성한 코드는 다음과 같습니다. #include using namespace std;int main(){ string alp = {""}; //알파벳 배열 alp를 NULL로 초기화한다. int time = 0; cin>>alp; for(int i = 0;alp[i] != 0;i++ ){ // 논리연산자를 이용하여 각 알파벳에 해당하는 범위를 ASCII의 dec값으로 // 지정해준다. if (alp[i] > 0){ if (alp[i] >= 65 && alp[i] = 68 ){ alp[i] = 4; }else if (alp[i] = 71..
2022.02.15