반응형

알고리즘(PS) 28

[백준] c++ BOJ 1086 부분합

https://www.acmicpc.net/problem/1806 문제 개요N개의 수열에서 연속된 부분 수열의 합이 S 이상이 되는 가장 짧은 길이를 찾는 문제이다.해결 방법투 포인터(Two Pointer) 기법을 사용하여 다음과 같이 해결한다.low와 high 두 개의 포인터를 사용해 부분 합을 조절한다.sumNum이 S 이상이면 최소 길이를 갱신하고 low를 증가시킨다.sumNum이 S 미만이면 high를 증가시키며 부분합을 키운다.최소 길이가 초기 값(2e9) 그대로면 부분합을 만들 수 없으므로 0을 출력한다.코드 리뷰시간 복잡도: O(N)오류 가능성:low len = 2e9는 정수 연산을 고려하면 INT_MAX가 더 명확함else if (high == N)에서 break 처리 정확해야 함개선점le..

알고리즘(PS) 2025.02.22

[백준] boj 14430 : 자원 캐기 (c++)

https://www.acmicpc.net/problem/14430 map이 주어지면 오른쪽 또는 아래쪽으로만 이동하여 주울 수 있는 자원의 최대치를 구하는 문제이다. 개인적으로 이동할수 있는 경우가 정해져있다는 점에서 숨바꼭질 문제와 비슷하다고 느꼈다.이 문제에서는 오른쪽 또는 아래쪽으로만 탐색을 해야하므로, 그래프 전체를 돌아다닐수 없고, 여러가지 경우의 수를 탐색 해 최적의 경로를 구해야 한다는 점에서 DP 문제 일것이다. 라고 느꼈다.우선 여느 DP 와 다를 것 없이 기존의 map 을 보존해야하므로  최대 자원 수를 구하는 이차원 DP와 원래 주어진 map, 2가지 이차원 배열을 선언 해야한다.처음에는 탐색 조건을 아래와 같이 설정했다. for (int i = 0; i 그러나 위와 같이 탐색을 하..

알고리즘(PS) 2025.01.13

[SQL] 경기도에 위치한 식품창고 목록 출력하기 (with.COALESCE 사용법)

https://school.programmers.co.kr/learn/courses/30/lessons/131114 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요정답 코드-- 경기도 위치-- NULL 이면 N-- ID 기준 오름 차순SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS ,COALESCE(FREEZER_YN ,'N..

[백준] 백준 27889번 특별한 학교 이름 (자바- HashMap 정리)

https://www.acmicpc.net/problem/27889  문제 출력 예제를 보자마자 해쉬 맵으로 풀어야겠다는 생각이 들었고, 푸는 김에 해쉬맵 메소드도 정리하면 좋겠단 생각이 들어서 쓴다. 풀이 각각의 약칭을 해쉬맵의 키에 넣고, 정식 명칭을  Value값에 넣으면 된다. 여러개를 출력하라고 했으면 While문을 돌렸겠지만, 여기서는 단순히 input 값을 키에 넣으면 되서 쉽다.import java.util.*;import java.lang.*;import java.io.*;// The main method must be in a class named "Main".class Main { public static void main(String[] args) { HashMap..

알고리즘(PS) 2024.12.11

[백준 | java] 1655 가운데를 말해요 (우선순위 큐)

https://www.acmicpc.net/problem/1655이 문제의 핵심 전략은 두 개의 힙을 사용하여 중앙값을 유지하는 것임. 최대힙에서 중앙값(출력할 것)을 유지하면서, 최소힙이 중앙값보다 큰값을 가진 요소들을 저장한다.이렇게 되면 , maxHeap -> minHeap 을 연결하는 부분이 오름차순을 이루며, maxHeap의 마지막 값이 중앙값중 작은 것이 오게된다.각 입력시 최대힙의 루트를 중앙값으로 유지하기위해 조정이 필요만약, maxHeap의 루트가 minHeap의 루트보다 크다면 두 힙의 루트를 교환하여 조건을 맞춤(tmp 부분) 정답 코드import java.util.*;import java.lang.*;import java.io.*;// The main method must be in..

알고리즘(PS) 2024.12.03

[About . GROUP BY ] 처음부터 알아보는GROUP BY(프로그래머스 예제들)

GROUP BY 란? 그룹 함수가 모든 데이터(또는 WHERE 절 조건에 충족하는 데이터)를 요약, 필터링하는 것이하면, GROUP BY는 각 데이터 별 필터링을 지원한다. 아래 그림에서 알수 있듯이, 그룹함수는 전체 테이블의 정보를 가져오지만, GROUP BY는 칼럼명이 같은 것 끼리 그룹핑 한 뒤에 각 그룹에 대한 계산 한다고 보면 된다. 간단한 예시로, 내가 대기업 A 회장일 때, 각 판매처의 매출을 구하고 싶다면 GROUP BY를, 전체 매출을 확인하고 싶다면 그룹함수를 쓰면 된다. SELECT VEND_ID, SUM(SALARY) AS SARARY FROM A GROUP BY VEND_ID; 그룹(집계) 함수(SUM,AVG,MIN,...) 자, 다시 오른 쪽위 그림을 눈여겨 보자. 그림은 GRO..

[백준 | 2056번] 작업 (c++ )

https://www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 위상정렬까진 어떻게 했지만 작업의 최솟값을 찾지 못했다. 처음에는 루트노드(가장 마지막 작업)을 시작으로 time배열에 더해 나가려고 했지만, 자식 노드의 형제 노드들까지 time을 더해 버리는 바람에 총 시간 이 나와버렸다. 문제에서 주어진 "서로 선행 관계가 없는 작업들은 동시에 수행 가능하다."라는 말은 사실 형제 노드들중 최댓값을 고르라는 말과 같다. (최솟값이 아닌 최댓값인 이유..

알고리즘(PS) 2024.02.16

백준[boj 11780번: 플로이드 2] -c++

https://www.acmicpc.net/problem/11780 11780번: 플로이드 2 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 문제 설명 각각의 도시로 가는 버스의 비용들을 입력받아 출발 도시에서 도착 도시까지의 비용을 갱신하여 출력하고, 최소 비용으로 지나치는 경로를 출력하는 문제이다. 플로이드 워셔은 single source -all destination 이기 때문에 각 도시별 전체 비용을 출력하라는 힌트를 보자마자 플루이트 워셜을 떠올렸어야한다. 플루이드 워셜 시간 복잡도가 N^3 이라 그래프의 크기가 크면 안된..

알고리즘(PS) 2024.02.16

[프로그래머스 MySql] 즐겨찾기가 가장 많은 식당 정보 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr GROUP BY 정도야 껌이라고 생각하고 들어갔다가 호되게 맞았다.. SELECT FOOD_TYPE,REST_ID,REST_NAME, MAX(FAVORITES) as FAVORITES FROM( SELECT FOOD_TYPE,REST_ID,REST_NAME,COALESCE(FAVORITES,0) as FAVORITES from REST_INFO )r group by r.FOOD_TYPE orde..

[프로그래머스 MySql] 주문량이 많은 아이스크림들 조회하기

https://school.programmers.co.kr/learn/courses/30/lessons/133027 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문 7월 테이블 중복 처리(GROUP BY 와 SUM) 7월 테이블 칼럼과 상반기 테이블 칼럼 더하기 총주문량을 정렬 DESC 칼럼 3개 뽐기 LIMIT 정답 코드 -- 코드를 입력하세요 SELECT f.FLAVOR FROM FIRST_HALF f JOIN( SELEC..

반응형