분류 전체보기 61

[백준] 여행 가자 1976 java - union find

일단 처음에 문제가 잘 이해가 가지 않아서 오래 걸렸다..도시의 개수 N이 연결되어 있는지의 대한 정보가 N*N개 입력,여행 계획에 대한 정보를 M개 입력하는 것이다..또한 순간 착각해서 A->B, B->A를 같은 경우로 생각해서 ArrayList에 양방향으로 추가해줬는데..다른 경우이므로 따로 List에 추가해주지 않아도 된다 !! 이 문제는 bfs로 풀이해도 되지만union-find 알고리즘으로 푸는 게 더 수월하다 ! https://www.acmicpc.net/problem/1976   import java.io.*;import java.util.*;public class Main { static int N, M; static int[] parent; static void union..

스터디/Algorithm 2024.10.02

[프로그래머스스쿨] 체육복 java - greedy

리스트를 처음에 정렬해야 함lost와 reserve 모두에 해당하는 학생 먼저 판단한 후에나머지 학생들을 판단해야 한다.나 같은 경우에는 빌려준 학생 처리를 -1로 하고 싶지 않아서int[]에 있던 데이터를 ArrayList에 넣고빌린 경우에 리스트에서 값을 remove로 제거하도록 코드를 구현했다.but.. remove로 값을 제거하는 경우에 index도 함께 -1 update 해줘야 함..(이 부분 놓쳐서 계속 부분점수 나왔다 ㅜㅜ) https://school.programmers.co.kr/learn/courses/30/lessons/42862?language=java# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이..

스터디/Algorithm 2024.09.25

[프로그래머스스쿨] 그룹별 조건에 맞는 식당 목록 출력하기 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