코딩 6

[백준] 구간 합 구하기 5 11660 java - dp

N과 M의 범위 때문에 값을 일일이 구하면 시간초과가 발생한다따라서 dp를 이용해서 풀어야 한다는 것은 이해가 갔는데..일반적인 누적합을 이용하니 결과를 구할때에 N*M 시간복잡도가 나와아슬아슬하게 테케를 통과했다...출처: https://developerjisu.tistory.com/9위의 사진처럼 누적합을 구해야한다는 것을 깨달았다!1. 1행/1열은 단순 누적합ex. 1행이 1 2 3 4 -> 1 3 6 101열이 1 2 3 4 -> 1 3 6 102. 나머지 행/열부터는 위와 같은 방식으로 누적합을 구해야지표에 한번에 저장할 수 있다  [1차 풀이]import java.io.*;import java.util.*;public class Main { public static void main(St..

스터디/Algorithm 2024.12.13

[백준] 애너그램 6442 java - 백트래킹

전형적인 백트래킹 문제이다.다만 각 순열의 결과를 자료구조에 저장하게 된다면 메모리 초과가 발생한다.맨 처음 정렬된 상태로 순열의 결과를 저장하려고 TreeSet 자료구조를 선택해서메모리 초과가 났다 ㅜㅜ 순열 결과를 저장하지 않고바로 sb에 담아서 출력하는 방식으로 수정해서 해결했다! https://www.acmicpc.net/problem/6443 첫번째 풀이import java.util.*;import java.io.*;public class Main { static String words; static boolean[] visited; static HashSet answer = new HashSet(); static void backtraking(String result, i..

스터디/Algorithm 2024.12.11

[프로그래머스스쿨] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 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

[백준] 입국심사 3079 java - 이분 탐색

https://www.acmicpc.net/problem/3079 상근이와 친구들은 오스트레일리아로 여행을 떠났다. 상근이와 친구들은 총 M명이고, 지금 공항에서 한 줄로 서서 입국심사를 기다리고 있다. 입국심사대는 총 N개가 있다. 각 입국심사관이 심사를 하는데 걸리는 시간은 사람마다 모두 다르다. k번 심사대에 앉아있는 심사관이 한 명을 심사를 하는데 드는 시간은 Tk이다.가장 처음에 모든 심사대는 비어있고, 심사를 할 준비를 모두 끝냈다. 상근이와 친구들은 비행기 하나를 전세내고 놀러갔기 때문에, 지금 심사를 기다리고 있는 사람은 모두 상근이와 친구들이다. 한 심사대에서는 한 번에 한 사람만 심사를 할 수 있다. 가장 앞에 서 있는 사람은 비어있는 심사대가 보이면 거기로 가서 심사를 받을 수 있다...

스터디/Algorithm 2024.05.30