분류 전체보기 789

[G5] 백준 14567번 선수과목 (Prerequisite) C++ 위상 정렬

리뷰 https://www.acmicpc.net/problem/14567까먹을까봐 간만에 풀어본 위상정렬 문제  전역 변수N : 배열의 최대값을 저장할 정수형 상수 변수n : 과목의 개수를 저장할 변수m : 선수 조건의 개수를 저장할 변수result : 각 과목이 최소 몇학기에 이수할 수 있는지 저장할 정수형 배열lst : 간선을 저장하기 위한 정수형 벡터 배열 함수없음  문제풀이n, m값을 입력 받고, m개의 간선 정보를 입력받아 lst배열에 저장한다.정수형 벡터 cnt를 n + 1크기로, 기본값은 0인 상태로 초기화 한다.1번 과목부터 순서대로 연결된 간선을 순회하며 다음 과목의 cnt를 증가시켜 준다.정수형 타입의 큐 q를 초기화 하고, 1번 과목부터 순회하며 cnt가 0인경우 q에 push해준다...

[G5] 백준 1584번 게임 C++ 너비 우선 탐색, 우선순위 큐

리뷰 https://www.acmicpc.net/problem/15840, 0에서 500, 500까지 생명이 최소로 깎인 상태로 이동하는 문제다익스트라로 구현할까 했지만 그냥 기저 조건에 도달하면 바로 리턴하는게 좋을 것 같아 bfs를 돌렸다.  전역 변수n : 위험 구역의 개수를 저장할 변수m : 죽음 구역의 개수를 저장할 변수lst : 맵 정보를 저장할 정수형 2차 배열v : 방문 정보를 저장할 논리형 2차 배열dx, dy : 4방향 탐색을 하기 위한 방향 배열 함수1. bfsint bfs() 너비 우선 탐색을 사용해 시작 위치부터 목표 위치까지 생명을 가장 조금 사용하여 도착하는 경우를 구하는 함수Pos타입의 우선순위 큐 q를 초기화 해주고, 초기값 0, 0, 0을 넣어준다.v배열에 시작 좌표인 0..

[G2] 백준 1365번 꼬인 전깃줄 C++ 이분 탐색, LIS

리뷰 https://www.acmicpc.net/problem/1365lower_bound를 사용하여 가장 긴 증가하는 부분 수열을 구하는 문제  전역 변수n : 전봇대의 개수를 저장할 변수ans : 정답을 저장할 변수 함수없음  문제풀이정수형 벡터 lis를 초기화 해준다.n값을 받아 주고, n번의 while루프를 수행해 준다.매 루프마다 정수형 변수 num에 오른편 전봇대의 위치를 받아준다.lower_bound 함수를 통해 lis에서 num이상인 값의 이터레이터를 it에 저장해 준다.it이 lis의 end라면 lis에 num을 push해준다.아니라면 ans를 증가시키고, it의 위치의 값을 num값으로 변경해 준다. 트러블 슈팅없음  참고 사항없음  정답 코드#include#include#include..

[AIoT] 무인 사물함 프로젝트 물리적 DB 설계

개요[AIoT] 무인 사물함 프로젝트 논리적 DB 설계, ERD 작성 [AIoT] 무인 사물함 프로젝트 논리적 DB 설계, ERD 작성개요실제 백엔드 로직을 작성하기 앞서 프로젝트 명세에 대해 많은 시간을 할애했다.주제가 정해진 이후 매일 30분 정도의 스크럼을 통해 각자 파트에서의 기능 구현에 대해 발표했다.그 중 DB의zzzz955.tistory.com 위 포스팅에서 만든 논리적 DB를 기반으로 물리적 DB를 설계하였다.엔터티 정보와 관계를 토대로 AI에게 부탁하니 PostgreSQL 환경에서의 SQL문을 모두 작성해 주었다.이를 토대로 테이블 생성 및 관계 설정, 인덱스 설정까지 한번에 설계가 가능해 졌다. 세상 참 좋아졌다. 다만, AI에게 요청 시 FK를 고려하여 테이블 생성에 따른 우선순위를 ..

[AIoT] 무인 사물함 프로젝트 논리적 DB 설계, ERD 작성

개요실제 백엔드 로직을 작성하기 앞서 프로젝트 명세에 대해 많은 시간을 할애했다.주제가 정해진 이후 매일 30분 정도의 스크럼을 통해 각자 파트에서의 기능 구현에 대해 발표했다.그 중 DB의 경우 모든 파트가 만족할 만한 설계가 완료되어야 하기 때문에 가장 오랜 시간이 걸렸다. 로그인 및 회원가입 구현 여부에 대해서도 계속 결정이 번복되었다.사용자 별 사물함 사용 횟수 및 이용 시간과 그에 따른 혜택 지급을 해주기 위해선 필요했다.하지만 회원가입을 통해 구현할 수 있는 내용이 그것 뿐이라 결국 스펙에서 제거하기로 결정했다. 이 처럼 얽히고 설킨 끝없는 회의를 통해 결국 테이블 구조를 확정짓게 되었다.동작에 필요한 객체를 각 엔터티 마다 id를 PK로 사용하여 정의하였다.이후 정규화 과정을 통해 종속성이 ..

[AIoT] 무인 사물함 프로젝트 개요

개요무인 사물함을 구현하는 AIoT 프로젝트를 시작하였다.프로젝트 인원은 총 6명으로 임베디드 2명, 프론트엔드 2명, 백엔드 2명으로 구성된 팀이다.임베디드를 공부하긴 했지만 백엔드 쪽에 관심이 더 생겨 나는 백엔드 파트를 맡게 되었다. 여태 개인 프로젝트만 진행하다 팀 프로젝트를 처음으로 진행하게 되어 걱정 반 기대 반인 상태이다.프로젝트 명세를 데드라인까지 성공적으로 구현하고 좋은 결과를 도출하면 좋겠다.  아이디어프로젝트 주제를 정의하기 까지 수 많은 아이디어가 오고갔다.무엇보다 AI요소를 접목하여 자율주행이 가능한 IoT를 개발해야 한다는 것이 주제 선정에 크게 애를 먹였다. 삼성의 볼리처럼 가전용 기계가 방을 순회하며 온습도 및 에어컨 등을 자동으로 틀어주는 로봇공장 재고파악을 자동으로 해주는..

[G1] 백준 13459번 구슬 탈출 C++ 구현, 시뮬레이션, 너비 우선 탐색

리뷰 https://www.acmicpc.net/problem/13459오랜만에 풀어본 진또배기 구현 및 시뮬레이션 문제, 코드 길이만 282줄이다. 이 문제는 유사 문제가 존재한다.[G1] 백준 13460번 구슬 탈출 2 C++ BFS, 구현, 시뮬레이션, 너비 우선 탐색 [G1] 백준 13460번 구슬 탈출 2 C++ BFS, 구현, 시뮬레이션, 너비 우선 탐색리뷰 설계를 하지 않고 무작정 덤볐다가 호되게 당한 문제, 구현과 시뮬레이션은 둘째치고 생각 못하고 있던 조건들이 많아서 애를 먹었다, 해당 문제를 풀기 전에 문제에 대한 조건을 한번 쭉zzzz955.tistory.com  전역 변수n : 맵의 세로 길이를 저장할 변수m : 맵의 가로 길이를 저장할 변수lst : 맵 정보를 저장하기 위한 문자열..

[G1] 백준 17143번 낚시왕 C++ 구현, 시뮬레이션, 우선순위 큐

리뷰 https://www.acmicpc.net/problem/17143상어가 다른 상어를 잡아먹으면 잡아먹은 상어만큼 몸집이 커지는 줄 알았다...오히려 더 어렵게 생각해서 한번 Fail을 받은 문제  전역 변수r : 맵의 세로 길이를 저장할 변수c : 맵의 가로 길이를 저장할 변수m : 상어의 개수를 저장할 변수ans : 정답을 저장할 변수lst : 맵 정보를 저장하기 위한 정수형 2차 배열dx, dy : 4방향 탐색을 하기 위한 방햘 배열Shark : 상어의 정보를 정의한 구조체, 상어의 번호 index, 위치 x, y, 속도 s, 방향 d, 크기 z를 저장하고, 상어의 크기 z를 기준으로 내림차순 정렬하는 비교 함수를 갖는다.sharks : 상어의 정보를 저장할 Shark타입의 배열 함수1. in..

[G1] 백준 11689번 GCD(n, k) = 1 C++ 정수론, 오일러 피 함수

리뷰 https://www.acmicpc.net/problem/11689출근시간 유튜브로 오일러 피 함수에 대해 공부하여 푼 문제 수학자들은 참 위대한 것 같다.  전역 변수없음  함수없음  문제풀이long long타입의 변수 n에 값을 입력 받고, long long타입의 변수 ans에 n값을 저장한다.long long타입의 변수 p를 2로 초기화 한다.n의 양의 제곱근이 p보다 크거나 같을 경우 while루프를 수행한다.n을 p로 나눈 나머지가 0일 경우 더 이상 나눠질 수 없을 때 까지 n에서 p를 나누어 준다.ans에 ans를 p로 나눈 몫 * p - 1만큼의 값을 저장해 준다.p를 증가시켜 준다.루프가 종료된 후 n값이 1보다 클 경우 ans에 ans를 n으로 나눈 몫 * n - 1만큼의 값을 저..

[P4] 백준 5670번 휴대폰 자판 C++ 트라이, 메모리 풀

리뷰 https://www.acmicpc.net/problem/5670구현까지는 금방 했지만 메모리풀을 구현하지 않아 틀린 문제메모리 풀의 크기를 메모리 제한에 맞게 적당히 설정하였더니 AC를 받았다.  전역 변수n : 단어의 개수를 저장할 변수idx : 할당한 메모리 풀의 개수를 저장할 변수Trie : 트라이를 구현하기 위한 구조체, 트라이 배열 child와 배열 내 null이 아닌 크기 cnt를 갖는다.memory : 메모리 풀을 구현하기 위한 Trie 주소값 타입의 배열lst : 주어진 단어를 저장하기 위한 문자열 배열 함수1. insertvoid insert(Trie* root, const string& str) 트라이에 단어를 삽입하기 위한 함수매개변수로 Trie의 루트 주소값과 삽입할 문자열을..

728x90