Problem Solving

Problem Solving

    [프로그래머스, 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

    [프로그래머스, 59411] 오랜 기간 보호한 동물(2) (mysql)

    https://school.programmers.co.kr/learn/courses/30/lessons/59411 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT ai.animal_id, ai.nameFROM animal_ins AS aiLEFT JOIN animal_outs AS ao ON ai.animal_id = ao.animal_idORDER BY (ao.datetime - ai.datetime) DESC LIMIT 2;

    [백준, BOJ 2022] 사다리 (java)

    https://www.acmicpc.net/problem/2022메모리: 14,576 KB , 시간: 112 ms사용 알고리즘: 이분 탐색, 수학, 피타고라스 정리수학 공식이 적용되는 것 같은데, 적절한 공식이 떠오르지 않아 블로그를 참고했다. 공식을 대입하여, 이분 탐색으로 두 건물 사이의 거리를 오차 범위 이내에 오도록 하는 값을 찾으면 된다.이분 탐색 시작 시에 값의 범위는 0 ~ Math.min(x, y)인데, 두 건물 사이의 거리가 사다리의 길이보다 길 수는 없기 때문이다.res가 c보다 높은 곳에 위치한다면, 가운데 값을 크게 해야 더 낮은 res를 구할 수 있기 때문에 이분 탐색의 왼쪽 값을 변경해 주고res가 c보다 낮은 곳에 위치한다면, 가운데 값을 낮게 해야 더 높은 res를 구할 수 ..

    [프로그래머스, 214289] 에어컨 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/214289# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 130 MB, 시간: 139.39 ms사용 알고리즘: 다이나믹 프로그래밍 n - 1분에서 에어컨을 끄거나, 희망 온도를 올리거나 내리거나, 희망 온도를 유지했을 때 나올 수 있는 모든 경우를 구하여 n분에서 발생할 수 있는 모든 경우를 구하는 방식으로 풀었다.import java.util.*;class Solution { static int temp; static int ..

    [프로그래머스, 214288] 상담원 인원 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/214288?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 75.6 MB, 시간: 3.49 ms사용 알고리즘: 그리디 알고리즘 모든 상담에 대해 멘토를 1명부터 (n - k + 1)명까지 배치했을 때의 대기 시간을 구한다.그 다음 어떤 상담의 멘토를 1명 늘려줄 때, 대기 시간을 가장 줄일 수 있을지 구해서 그 상담의 멘토를 1명 늘려주는 작업을 (n - k)번 진행한다.import java.util.*;class Solut..

    [백준, BOJ 1581] 락스타 락동호 (java)

    https://www.acmicpc.net/problem/1581메모리: 14,200 KB , 시간: 124 ms사용 알고리즘: 많은 조건 분기FF가 있다면 무조건 모든 FF를 먼저 넣어주는 것이 좋다.이후 FS가 있다면 FS를 하나 넣어 느리게 시작하는 음악을 넣어주러 가고, 또 모든 SS를 넣어준다.이후 SF와 FS를 번갈아가면서 넣어주면 최대한 많은 곡을 넣어줄 수 있다. 이를 if문을 통해 조건 분기만 잘 구현해주면 된다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args..

    [프로그래머스, 133026] 성분으로 구분한 아이스크림 총 주문량 (mysql)

    https://school.programmers.co.kr/learn/courses/30/lessons/133026 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT ingredient_type, SUM(total_order) AS TOTAL_ORDERFROM first_half as fhLEFT JOIN icecream_info as ii ON fh.flavor = ii.flavorGROUP BY ingredient_typeORDER BY TOTAL_ORDER

    [백준, BOJ 17142] 연구소 3 (java)

    https://www.acmicpc.net/problem/17142메모리: 26,156 KB , 시간: 240 ms사용 알고리즘: 그래프 이론, 브루트포스 알고리즘, 그래프 탐색, 너비 우선 탐색, 백트래킹바이러스가 어디에 존재하는지 ArrayList에 담아 따로 관리해 준다.각 바이러스마다 해당 바이러스만 활성화했을 때, 모든 곳에 바이러스를 확산시키기 위해 얼마만큼 시간이 걸릴지 spread_time 배열에 정보를 저장해 둔다.바이러스들 중 M개의 바이러스를 백트래킹을 통해 골라준 후, 고른 M개의 바이러스들을 활성화시켰을 때 최대 시간을 구해준다.M개의 바이러스 조합 중 최대 시간이 가장 짧은 시간을 답으로 출력한다. 이 문제를 해결하면서 한 가지 헷갈렸던 조건은 활성 바이러스가 비활성 바이러스가 ..

    [프로그래머스, 59044] 오랜 기간 보호한 동물(1) (mysql)

    https://school.programmers.co.kr/learn/courses/30/lessons/59044 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT name, datetimeFROM animal_insWHERE animal_id NOT IN ( SELECT animal_id FROM animal_outs)ORDER BY datetime LIMIT 3;

    [백준, BOJ 18116] 로봇 조립 (java)

    https://www.acmicpc.net/problem/18116메모리: 306,680 KB , 시간: 1,232 ms사용 알고리즘: 유니온 파인드같은 로봇의 부품인지 알기 위해 유니온 파인드를 사용하였다.만약 두 부품이 같은 로봇의 부품인지 알게 되었다면, 각자 알고 있던 부품의 개수를 더해준다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { static int[] parent; static int[] count; public static void main(String[] args) t..