[SQL] 저자 별 카테고리 별 매출액 집계하기
·
알고리즘/SQL
https://school.programmers.co.kr/learn/courses/30/lessons/144856 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr -- 코드를 입력하세요-- 판매중인 도서 정보 BOOK-- 저자 정보 AUTHOR-- BOOK_SALES-- 2022년 1월, 저자 별, 카테고리 별 매출액SELECT B.AUTHOR_ID, A.AUTHOR_NAME, B.CATEGORY, SUM(S.SALES * B.PRICE) AS TOTAL_SALESFROM BOOK_SALES SJOIN BOOK B ON S.BOOK_ID = B.BOOK_IDJOIN AUTHOR..
[백준 1278번] 연극
·
알고리즘
https://www.acmicpc.net/problem/1278 문제의 조건N명을 가지고, 최대 K개의 장면을 만들어야 한다.한 장면에는 최소 1명의 배우가 있어야 한다.처음 장면과 마지막 장면에는 한 명만 존재해야 한다.장면이 바뀔 때마다 새로운 배우를 넣거나, 기존 배우를 하나 빼는 방법이 있다.각 장면마다 구성하는 배우들은 모두 달라야 한다.가능한 많은 배우들이 출연할 수 있도록 도와줘야 한다.해당 문제를 풀 때에는 BackTracking, bit 연산을 이용해서 풀어주었다. 우선 최대한 배우들이 출연하면서 모든 장면에 다른 배우들이 나오려면 공집합을 제외한 부분집합의 개수를 구해주면 되므로 K = 2^N - 1 가 된다. visited[] : 나올 수 있는 배우들의 장면 ( 1번 배우부터 ..
[백준 1241번] 머리 톡톡
·
알고리즘
https://www.acmicpc.net/problem/1241 문제의 핵심자신이 쓰고 있는 숫자가 다른 사람이 쓰고 있는 모자의 배수라면 count 해준다.동일한 숫자를 쓰고 있는 학생의 수가 있을 수 있다. arr[] : 해당 위치에 적혀있는 모자의 숫자Map map : 현재 모자에 적혀져있는 숫자들의 개수 -> 적혀있는 숫자들의 모자들을 함께 countingcnt[] : 해당 위치에서 자신이 머리를 친 학생의 수를 더한다. 배열을 돌면서 현재 자신의 모자에 적힌 숫자에 약수를 구한 후, 약수에 적힌 다른 사람이 쓰고 있는 모자의 번호의 개수(map의 value) 만큼 counting해서 더해준다. 만약 4의 약수의 경우 1,2,4인데 -> 여기서 2 * 2는 같은 숫자이므로 동일한 약수의 경..
[백준 1027번] 고층 건물
·
알고리즘
https://www.acmicpc.net/problem/1027 해당 문제는 굉장히 많이 보이는 문제일 것이다. 기울기를 활용하는 문제인데, 문제를 보고 기울기를 판별해야겠다고 생각했지만 왼쪽으로 탐색했을 때와 오른쪽으로 탐색했을 때에 대해 생각을 깊게 하지 못했다. 요즘 내가 집중력이 산만해진 탓도 있는 것 같다,, 정신차리자. 그림과 같이 봤을 때 기울기가 감소할 때에는 기울기가 작을수록기울기가 증가할 때에는 기울기가 클수록건물의 위치가 보이는 것을 알 수 있다. import java.io.*;import java.util.*;public class BOJ_G4_1027_고층건물 { public static void main(String[] args) throws Exception { Buf..
[예외 처리] ConcurrentModificationException 예외 관련
·
알고리즘/예외처리
❗해당 예외가 발생하는 원인-> iterator로 순회하면서 동시에 add()를 수행했기 때문이다. HashSet의 iterator()는 fail-fast 구조이다.즉, 반복 중에 Set의 구조가 변경(add/remove) 되면 예외가 발생한다. 🔍 예시 상황Iterator iterator = weight.iterator();while (iterator.hasNext()) { Integer w = iterator.next(); weight.add(w + arr[i]); // ❗ 여기서 ConcurrentModificationException 발생 weight.add(Math.abs(w - arr[i])); // ❗ 동일} ✅ fail-fast란?Java의 컬렉션 프레임워크에서 반복..