programmers lv3

    [프로그래머스, 12987] 숫자 게임 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 63.1 MB, 시간: 112.35 ms사용 알고리즘: 정렬 A와 B의 점수를 모두 오른차순으로 정렬한 후, A 배열을 순회하며 항상 최선의 경우를 찾는다.항상 최선의 경우란, 아직 출전하지 않은 B팀의 점수 중 현재 확인 중인 A팀의 점수보다 큰 수 중 가장 작은 점수가 출전하는 것이다.만약 그런 점수를 찾을 수 없다면, 아직 확인하지 않은 남은 A팀의 점수들도 찾을 수 없다는 뜻이므로 br..

    [프로그래머스, 42898] 등굣길 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 51.9 MB, 시간: 0.99 ms사용 알고리즘: 동적계획법(Dynamic Programming)  처음 문제를 풀 때는 BFS로 풀었다.BFS로 사방탐색을 하는 것처럼 이방탐색을 해줬다.(오른쪽, 아래쪽으로만 이동이 가능하니 이방탐색) 정확성 테스트는 모두 통과할 수 있었는데 효율성 테스트는 모두 시간초과가 났다. 그래서 다른 방법을 고민해 봤는데, 생각해 보니 오른쪽, 아래쪽으로만 이동이..

    [프로그래머스, 43163] 단어 변환 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 72.4 MB, 시간: 0.69 ms사용 알고리즘: 너비 우선 탐색(BFS) 단어를 하나의 노드로 보고, 단어끼리 하나의 글자만 다르면 간선으로 연결되어 있다고 본다.begin에서 시작해서, 한 글자만 다른 단어들로 이동하면서(bfs) target을 찾아간다.import java.util.*;class Solution { // 변환을 몇 번 거쳐 만든 단어인지 정보를 저장하고 있는..

    [프로그래머스, 12927] 야근 지수 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 86.4 MB, 시간: 217.07 ms사용 알고리즘: 자료구조 무조건 작업량이 많은 작업의 크기를 줄이는 것이 유리하다.따라서 PriorityQueue에 내림차순으로 정렬하여, 현재 작업량이 가장 많이 남은 작업을 꺼내서 1씩 처리하는 과정을 n번 거치면 최소값을 구할 수 있다.import java.util.*;class Solution { public long solution(int ..

    [프로그래머스, 43162] 네트워크 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 93.4 MB, 시간: 0.45 ms사용 알고리즘: 유니온 파인드 먼저 유니온 파인드로 네트워크들을 모두 연결해 준다.이후 유니온 파인드에서 사용한 parent 배열을 순회한다.어느 한 네트워크에서 최고 조상인 parent[i] == i를 찾는다면 answer++ 해준다.class Solution { static int[] parent; public int soluti..

    [프로그래머스, 43105] 정수 삼각형 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 61.2 MB, 시간: 9.99 ms사용 알고리즘: 동적계획법 (Dynamic Programming), DFS dfs로 왼쪽 대각선으로 갔을 경우와 오른쪽 대각선으로 갔을 경우 중 더 큰 경우를 선택한다. 그런데 자신의 왼쪽에 있던 노드가 오른쪽 대각선으로 가는 경우와 자신이 왼쪽 대각선으로 가는 경우가 동일하니, 앞에서 이미 경우의 수를 구해놨다면 다시 구하지 않고 미리 저장해 둔 값을 사용..

    [프로그래머스, 42628] 이중우선순위큐 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 129 MB, 시간: 85.33 ms사용 알고리즘: 자료구조 큐에서 최댓값, 최솟값을 꺼내 리턴해주는 getMaxNum()과 getMinNum()을 메소드로 구현했다. 명령어 실행 중에는 큐가 비어있어도 리턴값을 아무거나 줘도 상관없지만,명령어 실행이 끝나고 마지막 최댓값, 최솟값을 구할 때 큐가 비어있으면 [0,0]을 리턴해야 되기 때문에큐가 비어있을 때 두 메소드의 리턴값을 무엇으로 할지가..

    [프로그래머스, 164668] 조건에 맞는 사용자와 총 거래금액 조회하기 (mysql)

    https://school.programmers.co.kr/learn/courses/30/lessons/164668 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT user.user_id, user.nickname, SUM(board.price) AS total_salesFROM used_goods_board as boardINNER JOIN used_goods_user as userON board.writer_id = user.user_idWHERE board.status = 'DONE'GROUP BY board.writer_idHAVING SUM..

    [프로그래머스, 157341] 대여 기록이 존재하는 자동차 리스트 구하기 (mysql)

    https://school.programmers.co.kr/learn/courses/30/lessons/157341 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT car_idFROM car_rental_company_carWHERE car_type = '세단'AND car_id IN ( SELECT car_id FROM car_rental_company_rental_history WHERE start_date >= '2022-10-01' AND start_date

    [프로그래머스, 131113] 조건별로 분류하여 주문상태 출력하기 (mysql)

    https://school.programmers.co.kr/learn/courses/30/lessons/131113 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT order_id, product_id, DATE_FORMAT(out_date, '%Y-%m-%d') as out_date, CASE WHEN out_date '2022-05-01' THEN '출고대기' ELSE '출고미정' END AS '출고여부'FROM food_orderORDER BY order_id