Algorithm
-
[C++] 1991번 트리 순회Algorithm/Baekjoon 2024. 11. 20. 10:21
문제https://www.acmicpc.net/problem/1991 코드#include #include #include using namespace std;// 트리를 저장할 그래프 자료구조// 각 노드는 문자로 표현되며, 해당 노드의 자식 노드들을 저장unordered_map> graph;// 전위 순회 함수 (Preorder Traversal)// 현재 노드 -> 왼쪽 자식 -> 오른쪽 자식 순으로 순회void preorder(char node) { if (node == '.') return; // 현재 노드가 비어있다면 종료 cout 현재 노드 -> 오른쪽 자식 순으로 순회void inorder(char node) { if (node == '.') return; // 현재 ..
-
[C++] 1987번 알파벳Algorithm/Baekjoon 2024. 11. 20. 09:34
문제https://www.acmicpc.net/problem/1987 코드#include #include #include #include using namespace std;// DFS를 사용하여 보드에서 가능한 가장 긴 경로의 길이를 찾는 함수int dfs(const int& r, const int& c, const vector& board) { // 이동 방향: 상, 하, 좌, 우 int dx[] = { -1, 1, 0, 0 }; int dy[] = { 0, 0, -1, 1 }; // DFS에 사용할 스택. 각 요소는 (x, y, mask, length)를 나타냄 stack> s; int ret = 0; // 최대 길이를 저장할 변수 // 초기 상태: (0,..
-
[C++] 1967번 트리의 지름Algorithm/Baekjoon 2024. 11. 1. 16:29
문제https://www.acmicpc.net/problem/1967 코드#include #include #include #include using namespace std;// BFS를 통해 시작 노드 v에서 가장 먼 노드와 거리를 반환pair bfs(int v, const int n, const vector>>& graph) { queue q; vector visited(n + 1, -1); // 방문 여부 및 거리를 저장하는 배열 (초기값 -1) q.push(v); visited[v] = 0; // 시작 노드는 거리가 0 // BFS 수행 while (!q.empty()) { v = q.front(); q.pop(); // 현재 노드 v와 연결된 모든 노드 탐색 for (const ..
-
[MySQL] 카테고리 별 상품 개수 구하기Algorithm/Programmers 2024. 10. 28. 19:04
문제https://school.programmers.co.kr/learn/courses/30/lessons/131529 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이-- PRODUCT 테이블에서 제품 코드의 앞 두 자리를 추출하여 카테고리별로 제품 수를 계산하는 쿼리SELECT SUBSTRING(PRODUCT_CODE, 1, 2) AS CATEGORY, -- 각 카테고리에 속하는 제품의 개수를 세어 'PRODUCTS'라는 별칭을 부여 COUNT(*) AS PRODUCTSFROM PRODUCT-- 앞 두 자리로 나눈 카테고리별로 그룹화GROUP BY CATEGORY..
-
[MySQL] DATETIME에서 DATE로 형 변환Algorithm/Programmers 2024. 10. 28. 18:57
문제https://school.programmers.co.kr/learn/courses/30/lessons/59414 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이-- ANIMAL_INS 테이블에서 동물 ID, 이름, 입소 날짜를 조회하는 쿼리SELECT ANIMAL_ID, NAME, -- DATETIME 필드를 'YYYY-MM-DD' 형식의 문자열로 변환하여 '날짜'라는 별칭을 부여 DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜FROM ANIMAL_INS-- 결과를 ANIMAL_ID를 기준으로 정렬ORDER BY ANIMAL..
-
[MySQL] 조건에 맞는 아이템들의 가격의 총합 구하기Algorithm/Programmers 2024. 10. 28. 18:55
문제https://school.programmers.co.kr/learn/courses/30/lessons/273709 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이SELECT SUM(PRICE) AS TOTAL_PRICEFROM ITEM_INFO-- 희귀도가 "LEGEND"인 아이템만 선택WHERE RARITY = "LEGEND";
-
[C++] 1932번 정수 삼각형Algorithm/Baekjoon 2024. 10. 26. 02:41
문제https://www.acmicpc.net/problem/1932 코드#include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); // 입출력 속도 향상 int n; cin >> n; // 삼각형의 층 수 입력 vector dp(n); // 현재 층에서의 최대 합을 저장할 배열 cin >> dp[0]; // 첫 번째 층 입력 // 두 번째 층부터 마지막 층까지 반복 for (int i = 1; i temp(i + 1); // 임시 배열 생성 (현재 층에서의 최대 합 계산용) // 현재 층의 각 숫자..
-
[C++] 1918번 후위표기식Algorithm/Baekjoon 2024. 10. 24. 17:02
문제https://www.acmicpc.net/problem/1918 코드#include #include #include #include using namespace std;int main() { string expression; // 중위 표기법으로 입력되는 수식을 저장할 문자열 cin >> expression; // 수식 입력 // 연산자의 우선순위를 저장하는 맵 unordered_map precedence = { {'+', 1}, {'-', 1}, // 덧셈과 뺄셈은 같은 우선순위 (1) {'*', 2}, {'/', 2}, // 곱셈과 나눗셈은 같은 우선순위 (2) {'(', 0}, {')', 0} // 괄호의 우선순위..