분류 전체보기 146

[백준 / Java] 2467 용액

문제https://www.acmicpc.net/problem/2467  문제 개요산성 용액(양수)과 알칼리성 용액(음수)이 주어졌을 때, 두 개의 용액을 혼합하여 특성값이 0에 가장 가까운 조합을 찾는 문제입니다. 두 용액의 특성값을 더한 값이 0에 가까울수록 좋은 조합이며, 이를 만족하는 두 용액을 오름차순으로 출력해야 합니다. 용액들의 특성값은 정렬된 상태로 주어지므로, 이를 활용하여 효율적인 탐색이 가능합니다.  문제 접근 방법이 문제는 "두 수의 합이 특정 값에 가장 가까운 쌍을 찾는 문제"로, 투 포인터(Two Pointer) 알고리즘을 활용하여 해결할 수 있습니다.해결 방법투 포인터 사용입력된 용액 배열이 오름차순 정렬된 상태이므로, 양 끝에서 시작하는 두 개의 포인터(left, right)를..

문제/백준 2025.02.21

[프로그래머스 / MySQL] 업그레이드 할 수 없는 아이템 구하기

문제https://school.programmers.co.kr/learn/courses/30/lessons/273712 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr ❌ 처음 작성한 쿼리SELECT item_id, item_name, rarity FROM item_info WHERE item_id NOT IN ( SELECT DISTINCT parent_item_id FROM item_tree )order by item_id desc;이 쿼리에서 parent_item_id를 SELECT했는데, NULL 값이 포함될 수 있음parent_item_id는 ROOT 아이템에 대해 NULL 값을 ..

[MySQL] JOIN, LEFT JOIN, RIGHT JOIN

💡 JOIN, LEFT JOIN, RIGHT JOIN 개념SQL에서 JOIN은 여러 개의 테이블을 조합하여 하나의 결과 집합을 만드는 데 사용됨각 JOIN의 차이를 이해하려면, 기준 테이블(LEFT)과 조인할 테이블(RIGHT) 개념을 알아야 함 1. INNER JOIN (기본 JOIN)두 테이블에서 일치하는 데이터만 가져옴일치하지 않는 데이터는 결과에서 제외됨SELECT A.컬럼명, B.컬럼명FROM AINNER JOIN B ON A.공통컬럼 = B.공통컬럼; INNER는 생략 가능 (JOIN = INNER JOIN) 예시SELECT employees.name, departments.dept_nameFROM employeesJOIN departments ON employees.dept_id = dep..

언어/MySQL 2025.02.21

[백준] 20437 문자열 게임 2 - Java

문제https://www.acmicpc.net/problem/20437 문제 개요이 문제는 주어진 문자열에서 특정 문자가 정확히 K번 등장하는 연속 문자열의 길이를 구하는 문제입니다. 두 가지 조건에 따라 계산해야 합니다특정 문자가 정확히 K번 등장하는 가장 짧은 연속 문자열의 길이특정 문자가 정확히 K번 등장하며, 문자열의 시작과 끝 문자가 같은 가장 긴 연속 문자열의 길이 접근 방법이 문제는 해시맵과 리스트를 활용한 인덱스 추적 방식으로 해결하였습니다.문자 인덱스 맵 생성문자열의 각 문자를 순회하며 해당 문자가 등장한 위치(인덱스)를 저장합니다.이를 위해 HashMap> 자료구조를 사용하였고, 각 문자마다 등장한 인덱스 리스트를 만들어 빠르게 참조할 수 있도록 하였습니다.K번 등장하는 문자열의 길이 ..

문제/백준 2025.01.27

[프로그래머스] 자동차 대여 기록에서 장기/단기 대여 구분하기 - MySQL

문제https://school.programmers.co.kr/learn/courses/30/lessons/151138 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 개요자동차 대여 기록 테이블에서 대여 시작일이 2022년 9월에 속하는 데이터를 가져오고, 대여 기간에 따라 '장기 대여' 또는 '단기 대여'로 구분해야 합니다. case구문을 활용하여 해결할 수 있습니다.코드select history_id, car_id, date_format(start_date, "%Y-%m-%d") as start_date, date_format(end_date, "%Y-%m-%d") a..

[MySQL] case 구문

MySQL에서 CASE는 조건에 따라 다른 결과를 반환할 수 있도록 해주는 제어문(Conditional Statement)입니다. SQL에서 조건부 로직을 처리할 때 사용하며, 프로그래밍 언어의 if-else 문과 유사한 역할을 합니다. 주로 SELECT, UPDATE, 또는 다른 SQL 문 안에서 활용됩니다. CASE 문의 기본 문법1. CASE WHEN 형태CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 ... ELSE 기본값END 2. CASE (값 기반) 형태CASE 값 WHEN 값1 THEN 결과1 WHEN 값2 THEN 결과2 ... ELSE 기본값END  CASE 문의 구성요소CASE: 조건부 로직을 시작하는 키워드입니다...

언어/MySQL 2025.01.25

[MySQL] concat 함수

MySQL에서 CONCAT 함수란?MySQL에서 CONCAT 함수는 두 개 이상의 문자열을 하나로 연결(결합)하는 데 사용되는 함수입니다.다양한 데이터 타입(숫자, 문자열 등)을 조합하여 하나의 문자열로 반환할 수 있어, 결과 데이터를 좀 더 직관적으로 표현하거나 출력 포맷을 커스터마이징할 때 유용합니다.   기본 문법CONCAT(string1, string2, ..., stringN) string1, string2, ..., stringN: 결합하고자 하는 문자열 또는 값을 입력합니다.최소 1개의 입력값이 필요하며, 여러 개의 값을 쉼표(,)로 구분합니다.  특징NULL 처리:하나라도 NULL 값이 포함되면 전체 결과가 NULL로 반환됩니다.이를 방지하려면 IFNULL()을 함께 사용하여 NULL 값을..

언어/MySQL 2025.01.25

[프로그래머스] 잡은 물고기 중 가장 큰 물고기의 길이 구하기 - MySQL

문제https://school.programmers.co.kr/learn/courses/30/lessons/298515 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   문제 개요 우리는 물고기 중 가장 큰 길이를 MAX() 함수로 구한 뒤, 해당 값에 'cm'라는 단위를 추가해 결과를 출력해야 합니다. 결과 컬럼명은 MAX_LENGTH로 지정합니다.  CONCAT 함수로 단위 추가 SQL에서 문자열을 결합하거나 값을 연결하고 싶을 때 사용하는 함수가 바로 CONCAT입니다. CONCAT을 활용하면 최댓값에 'cm'라는 단위를 쉽게 붙일 수 있습니다.select concat(max(length), 'c..

[프로그래머스] Python 개발자 찾기 - MySQL

https://school.programmers.co.kr/learn/courses/30/lessons/276013 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 기존 접근 방법: OR 연산자 활용 이 코드로 문제를 해결할 수 있지만, 조건이 많아질수록 코드가 길어지고 가독성이 떨어지는 단점이 있습니다.select id, email, first_name, last_namefrom developer_infoswhere skill_1 = 'Python' or skill_2 = 'Python' or skill_3 = 'Python'order by id;  개선된 접근 방법: IN 연산자 활용위 문제를 해결하..

[백준] 14891 톱니바퀴 - Java

문제https://www.acmicpc.net/problem/14891  문제 개요 총 4개의 톱니바퀴가 일렬로 배치되어 있으며, 각 톱니바퀴는 N극(0)과 S극(1)으로 이루어진 8개의 톱니를 가지고 있습니다. 사용자는 톱니바퀴를 회전시킬 때, 서로 맞닿은 톱니의 극에 따라 다른 톱니바퀴도 영향을 받아 회전할 수 있습니다. 주어진 회전 명령에 따라 톱니바퀴를 회전시키고, 최종 상태를 기반으로 점수를 계산하는 문제입니다.  접근 방법톱니바퀴 상태 및 회전 명령 초기화4개의 톱니바퀴 상태를 2차원 배열로 저장하였습니다.각 회전 명령은 번호와 방향을 담은 객체로 관리하였습니다.회전 방향 결정특정 톱니바퀴를 회전시키면, 맞닿은 톱니의 극(N극과 S극)을 확인하여 인접 톱니바퀴가 회전할지 여부를 결정했습니다.이..

문제/백준 2025.01.25