IT 42

[프로그래머스스쿨] 그룹별 조건에 맞는 식당 목록 출력하기 oracle

https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr MAX(count(review_id))를 이용해서 가장 많은 리뷰수를 구하고이 리뷰수와 동일한 만큼 리뷰를 쓴 사람을 구하면 된다!또한 리뷰를 많이 쓴 사람이 여러 명이므로 in 을 사용해야 한다  select m.member_name, r.review_text, to_char(r.review_date, 'YYYY-MM-DD')from member_profile m inner join rest_re..

스터디/Algorithm 2024.09.20

[프로그래머스스쿨] 입양 시각 구하기(2) oracle

https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   connect by level 사용법만 알면 쉬운 문제다0~23시까지 더미데이터를 만든 후 left join한 후에시간에 따른 동물수 (group by hour) 구해주기!여기서 주의할 점은 시간을 나타날 때에 0~23시이므로 HH가 아니라 HH24로 포맷팅 해줘야 한다!  select h.hour, count(a.animal_id) as countfrom (select level-1 as hou..

스터디/Algorithm 2024.09.20

[프로그래머스스쿨] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 oracle

똑같은 car_id를 가진 차에 대한 대여 기록이 여러 개 있을 수 있다따라서 11월에 대여 가능한 차를 조회하기 위해서는11월에 대여 불가능한 차(car_id)를 먼저 서브쿼리로 선별한 후에이에 해당하지 않는 차를 not in으로 골라내야 한다!! https://school.programmers.co.kr/learn/courses/30/lessons/157339 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  select c.car_id, c.car_type, 30*c.daily_fee*(1-p.discount_rate*0.01) as feefrom car..

스터디/Algorithm 2024.09.20

[프로그래머스스쿨] 상품을 구매한 회원 비율 구하기 oracle

https://school.programmers.co.kr/learn/courses/30/lessons/131534 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  문제를 잘못 파악해서 꽤나 오래 걸린 문제2021년에 가입한 사람 중 물건을 구매한 날짜의 년/월을 기준으로 group by를 해야 한다분모에 해당하는 2021년에 가입한 사람 전체수를 어떻게 처리해줘야 할지 잘 떠오르지 않아서테이블을 하나 더 추가한 후에 group by 할 때에 이 컬럼도 추가해줬다..but 다른 사람들 풀이를 찾아보니 select 절에서 서브쿼리로 한번에 처리해주는 것을 보고..

스터디/Algorithm 2024.09.19

[백준] 암벽 등반 2412 java -bfs

(0,0)에서 시작해 y==3인 경우까지 가는 최단 거리를 구하는 문제로이해할 수 있으므로 bfs로 풀 수 있다하지만 범위가 크기  때문에 기본 이차원배열로 방문처리를 하면 시간초과가 발생한다따라서 ArrayList[]에 값을 저장한 후에방문한 경우에 remove로 배열 값을 바로 바로 삭제해주는 식으로 방문처리를 해줘야 한다여기서 주의할 점은 삭제한 경우에 Index 크기가 1씩 줄어들기 때문에 -1을 해주어야 한다!  https://www.acmicpc.net/problem/2412 import java.io.*;import java.util.*;public class Main { static ArrayList[] map; static int n, T; static int bfs(){..

스터디/Algorithm 2024.09.16

[백준] 합이 0 3151 java - 투포인터

3가지를 고르는 것이므로 완전탐색하면 당연히 시간초과..하나를 고정시켜 놓은 후에 투포인터를 이용해서 2개를 고르는 아이디어까지는 생각했는데반례 케이스를 고려하지 못해서 힘들게 푼 문제다 ㅜㅜ아래 블로그를 참고해서 아이디어를 얻었다https://skdltm117.tistory.com/71 정렬 후 -> 투포인터(start, end)를 사용해서 합이 0이 되는 값을 고르면 되는데여기서 주의해야 할 사항은같은 값이 여러개인 경우 3가지 조건에 맞춰서 경우의 수를 세주는 것이다!맨 처음 오답 풀이로 하면 같은 값이 여러개인 경우를 정확히 카운팅 할 수 없다. 1) start, end 같은 값이 여러개인 경우2) start 같은 값이 여러개인 경우3) end 같은 값이 여러개인 경우 반례)8-10 5 5 5 5..

스터디/Algorithm 2024.09.15

[백준] 수들의 합2 2003 java - 투포인터

https://www.acmicpc.net/problem/2003 left~right(이전 값까지) 합하며결과값이 M과 같은지 비교하도록 풀이했다.right 이전값까지 합해주므로 조건문을 잘 설정해야하는데처음에는 break문을 잘못 걸어줘서 계속 틀렸다 ㅜㅜ내가 찾은 반례는 다음과 같다! 10 8 3 1 1 1 1 1 1 2 2 2Answer: 4 (답)내 출력값: 3 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Sys..

스터디/Algorithm 2024.09.10

[친절한 SQL 튜닝] 1장 데이터 저장 구조 및 I/O 메커니즘

옵티마이저 힌트 SQL 옵티마이저는 순식간에 엄청나게 많은 연산을 한다. 그 과정에 옵티마이저가 사용하는 정보는 다음과 같다.-테이블, 컬럼, 인덱스 구조에 관한 기본 정보-오브텍트 통계: 테이블 통계, 인덱스 통계,  (히스토그램을 포함한) 컬럼 통계-시스템 통계: CPU 속도, Single Block I/O 속도, Multiblock I/O 속도 등-옵티마이저 관련 파라미터 주의사항1. 힌트 안에 인자를 나열할 땐 ','(콤마)를 사용할 수 있지만, 힌트와 힌트 사이에 사용하면 안된다./*+ INDEX(A A_X01) INDEX(B, B_X03) */ -> 모두 유효/*+ INDEX(C), FULL(D) */ -> 첫번째 힌트만 유효2. 테이블을 지정할 때 스키명까지 명시하면 안 된다SELECT /*..

[백준] 퇴사2 15486 java - dp

https://www.acmicpc.net/problem/15486 dp에 대한 연습이 많이 필요하겠다...일단 범위를 봐서는 완탐으로 풀면 시간초과가 날 것매일의 이익을 dp 배열로 두고 풀어야 한다 !! import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] T = new int[N+2]; ..

스터디/Algorithm 2024.06.20

[백준] 말이 되고픈 원숭이 1600 java - bfs

https://www.acmicpc.net/problem/1600 처음에 말의 이동이 잘 이해가 가지 않아서 어려웠고두 번째 난관은 같은 위치에 있을 때에도k를 쓴 갯수에 따라서 다른 경우로 봐야하는데, 이를 간과해서 어려웠다 !  틀린 코드import java.io._; import java.util._;public class Main { static int K, W, H; static int\[\]\[\] graph; static boolean\[\]\[\] visited; static int\[\] dx1 = {0,0,1,-1}; static int\[\] dy1 = {1,-1,0,0}; static int\[\] dx2 = {2,2,1,1,-2,-2,-1,-1}; static int..

스터디/Algorithm 2024.06.20