본문 바로가기
728x90
반응형

전체 글497

[프로그래머스] 조건에 맞는 아이템들의 가격의 총합 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명2. 풀이과정해당 문제는 희귀도가 'LEGEND'인 아이템들의 가격의 총합을 구하는 문제이다.최종 결과를 조회할 때 컬럼명은 'TOTAL_PRICE'로 지정해야 한다.문제 해결은 간단하다. 그저 희귀도가 'LEGEND'인 값들만 조회한 후 가격 컬럼의 총합을 조회하면 된다.희귀도가 'LEGEND'인 값을 조회할 때는 WHERE 조건에 해당 조건을 지정해 주면 된다.이후 조회한 값들을 가지고 가격 컬럼의 값을 SUM() 함수를 활용해 모두 더해주면 된다. 가격 컬럼의 값을 모두 더해 'TOTAL_PR.. 2024. 9. 13.
[프로그래머스] 카테고리 별 상품 개수 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명2. 풀이과정해당 문제는 상품 카테고리 코드 별 상품 개수를 조회하는 문제이다. 문제에서 중요한 점은 바로 카테고리 코드 별로 조회를 해야 한다는 점이다. ~별로 조회를 할 때는 GROUP BY 구문으로 그룹을 만들어주면 된다. GROUP BY 뒤에 만들어줄 그룹의 기준 컬럼을 적어주면 해당 컬럼의 값 별로 그룹이 만들어진다. 그룹을 만든 뒤 COUNT() 함수를 사용하면 해당 그룹별로 각 값의 개수를 조회할 수 있다. 해당 문제에서 또 한 가지로, 조회할 때 상품 카테고리 코드를 해당 값에서 앞 .. 2024. 9. 12.
[백준] 17299번 : 오등큰수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 https://www.acmicpc.net/problem/17299 1. 문제 설명2. 풀이과정해당 문제는 이전의 17298번 : 오큰수 문제와 유사한 문제이다.이전의 오큰수 문제는 단순히 오른쪽에 있는 값들 중 큰 값에서 가장 왼쪽에 있는 값을 구하는 문제였지만,해당 오등큰수 문제는 거기에 숫자의 개수도 커야 하는 조건이 추가되었다. N의 최대 크기가 1,000,000이므로 반복문을 사용해 오등큰수를 찾으면 제한 시간을 초과하게 된다.하여 스택을 활용해 문제를 해결한다.오등큰수가 존재하지 않는 수는 -1을 출력하므로 오등큰수를 저장할 리스트를 -1로 초기화한다.오등큰수는 해당 수 다음 수들에서 찾아야 하므로 숫자들의 개별 값이 아닌 인덱스를 저장할 스택을 생성한다.스택에 원소가 있고 스택의 제일 마지막.. 2024. 9. 11.
[프로그래머스] DATETIME에서 DATE로 형 변환 - MySQL - 우당탕탕 개발자 되기 프로젝트 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명2. 풀이과정해당 문제는 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 문제이다.해당 문제에서 중요한 점은 데이터를 조회하는 테이블에서 날짜 컬럼의 들어온 날짜 형식과 실행 후 결과에서의 날짜 형식이 다르다는 것이다.데이터를 조회하는 테이블에서 날짜 형식은 YYYY-MM-DD HH:MM:SS 형식으로 저장되어 있다.하지만 실행 결과에서의 날짜 형식은 YYYY-MM-DD 형식으로 나타나게 된다.이렇게 날짜 형식을 바꾸기 위해서는 DATE_FORMAT() 함수를 사용할 수 있다.DATE_FORMAT.. 2024. 9. 10.
[백준] 9935번 : 문자열 폭발 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 https://www.acmicpc.net/problem/9935 1. 문제 설명2. 풀이과정해당 문제는 폭발 문자열이 문자열에 없을 때까지 반복하며 최종적으로 남은 문자열을 출력하는 문제이다.만약 남은 문자열이 없으면 FRILA를 출력한다.스택 자료구조를 활용하여 전체 문자열에서 문자를 하나씩 가져오며 스택 자료구조에 추가한 뒤, 스택 자료구조에서 폭발 문자열의 길이만큼의 마지막 부분을 확인하여 폭발 문자열과 일치하면 해당 문자열을 제거한다.전체 문자열에서 각 문자를 하나씩 가져오며 매번 폭발 문자열이 있는지 확인할 것이기 때문에 늘 마지막 부분만 확인하여 제거해 주면 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys전체 문자열을 입력받는다... 2024. 9. 9.
[백준] 7579번 : 앱 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 https://www.acmicpc.net/problem/7579 1. 문제 설명2. 풀이과정해당 문제는 주어진 M 바이트 이상의 메모리를 추가로 확보할 때 드는 비용의 최솟값을 구하는 문제이다.해당 문제는 배낭 문제(Knapsack Problem)와 유사하여 이와 관련된 다이나믹 프로그래밍(Dynamic Programming) 알고리즘을 사용하면 해결할 수 있다.2차원 dp 배열을 생성하여 dp[i][j] 값에 i번째까지의 앱을 고려했을 때 j 비용만 들여 확보할 수 있는 최대의 메모리를 저장하면 된다.비용의 최댓값은 모든 앱을 비활성화했을 경우 드는 비용이므로 모든 앱의 비용을 더해주면 된다.처음 각 앱까지만 고려했을 때 비용에 따른 최대 메모리는 이전 앱까지만 고려했을 때 비용에 따른 최대 메모리로.. 2024. 9. 8.
[프로그래머스] NULL 처리하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명2. 풀이과정해당 문제는 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 문제이다.해당 문제에서 중요한 점은 이름이 없는 동물의 이름은 NULL 기호 대신 "No name"으로 표시해줘야 한다는 것이다.NULL을 다른 값으로 바꿀 때는 SELECT 절에서 IFNULL() 함수를 사용하면 된다.IFNULL() 함수를 IFNULL(값1, 값2)처럼 사용하면 만약 값1이 NULL일 경우 값2로 바꾸라는 의미가 된다.IFNULL() 함수를 사용하여 이름 컬럼의 값이 NULL 이면 ".. 2024. 9. 8.
[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명2. 풀이과정해당 문제는 가격이 제일 비싼 식품의 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 문제이다. 식품의 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격은 값을 조회하려는 테이블의 모든 컬럼이므로 컬럼 이름을 모두 적어주는 대신에 *를 입력하여 모두 선택하면 된다.해당 문제에서는 WHERE에 조건을 입력하는 부분이 중요한데, 가격 컬럼의 값이 최댓값인 값만 조회해야 한다.하여 조건을 지정할 때 최댓값을 지정하려면 서브쿼리를 활용하여 가격의 최댓값을 조회하고 해당 값을.. 2024. 9. 7.
[백준] 2293번 : 동전 1 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 https://www.acmicpc.net/problem/2293 1. 문제 설명2. 풀이과정해당 문제는 동전을 여러 개 사용하여 가치의 합을 맞출 수 있는 모든 경우의 수를 구하는 문제이다.모든 경우의 수를 다 찾을 수 없으므로 동전의 가치가 가장 작은 것부터 가치의 합을 1부터 k까지 각 경우의 수를 차례대로 구하여 저장한 다음, 가치가 큰 동전을 하나씩 불러오며 해당 동전만으로 만들 수 있는 값을 구해 그 경우의 수를 이전 경우의 수에 추가한다.예제를 예시로 보면 동전의 가치가 가장 작은 1부터 각 가치를 1만 사용하여 경우를 구한다. 다음으로 2만 사용하여 경우를 이전의 경우에 추가하여 구한다.여기서 2는 0의 경우에 2를 추가한 경우이고, 3은 1의 경우에 2를 추가한 경우이다.4는 2의 경우에.. 2024. 9. 7.
[프로그래머스] 중복 제거하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명2. 풀이과정해당 문제는 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 문제이다.해당 문제에서 중요한 점은 중복되는 이름은 하나로 치는 것이다.중복을 제거할 때는 DISTINCT를 사용하면 된다.이름 컬럼에 DISTINCT를 사용하여 중복되는 이름을 하나로 치고 그 개수를 세어 조회하면 된다.여기서 또 하나, 이름이 NULL인 경우는 집계하지 않으므로 이름 컬럼의 값이 NULL이 아닌 경우만 조회한다. 중복을 제거한 이름 컬럼의 개수를 세어 count 컬럼명으로 조회한다. SELECT CO.. 2024. 9. 6.
728x90
반응형