본문 바로가기

티스토리챌린지5

[Java / 백준 ] 12851. 숨바꼭질 문제링크: https://www.acmicpc.net/problem/12851태그: bfs 풀이 숨바꼭질 문제와 동일하지만, 다른 점이 있다면 이미 방문한 지점도 재방문이 가능하도록 해야한다는 것입니다.재방문이 가능한 기준은 이전에 방문했던 시간과 다시 방문하려고 할때의 도달 시간이 같을 때입니다.다시 방문하려고 할때, 이전에 도달했던 시간보다 크다면, K에 도달했을 때 최단 시간이 될 가능성이 없기 때문에 제외시켜줍니다. vis 배열을 선언해주고 이를 모두 최대값으로 초기화 해준 다음, vis[next] 전체 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;class Main { public stat.. 2024. 11. 20.
[MySQL] SQL 프로그래머스 4단계 다 풀어보기 (2) 6문제자동차 대여 기록 별 대여 금액 구하기 포인트: 서브 쿼리, WITH 절, 대여 기간은 DATEDIFF + 1이라는거, CASE WHEN THEN END 문 너무 어렵다.. https://school.programmers.co.kr/learn/courses/30/lessons/151141 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr WITH DISCOUNT AS (SELECT H.HISTORY_ID AS HISTORY_ID, C.DAILY_FEE AS DAILY_FEE,DATEDIFF(H.END_DATE, H.START_DATE) + 1 AS DATEDIFF, C.CAR_TYPE AS CAR_T.. 2024. 11. 10.
[MySQL] 코딩테스트 준비를 위한 MySQL 내장함수 정리 문자열 관련 내장 함수LOCATE("A", "ABC"): "ABC"에서 "A"가 몇번째인지를 반환SUBSTRING("abc", 2): 2번째 문자부터 반환RIGHT("ABCD", 1): "ABCD" 오른쪽에서 1번째까지LEFT("ABCD, 1): "ABCD" 왼쪽에서 1번째까지UPPER(str), LOWER(str): 대문자로 변환, 소문자로 변환CONCAT("ABC", "DEF", "GHI"): 문자열 이어붙이기REPLACE("ABC", "A", "Z"): "ABC"의 "A"를 "Z"로 변환LPAD("DEF", 5, "_"): "DEF" 왼쪽에 "_"를 전체 문자열이 5글자가 되도록 붙이기  숫자형ABS(숫자): 절대값 반환CEILING(실수): 올림FLOOR(실수): 내림ROUND(실수): 반올림TR.. 2024. 11. 9.
[PS / 백준] 12904. A와 B https://www.acmicpc.net/problem/12904  풀이S가 T가 될 수 있는지를 따지지 않고 T가 S가 될 수 있는지를 따지면 되는 문제였다.T가 S가 될 수 있는지를 따지면 경우가 딱 두가지로 나뉜다. (i) T가 A로 끝남 => T의 맨 뒤에 있는 A를 떼면된다.(ii) T가 B로 끝남 => T의 맨 뒤에 있는 B를 떼고 문자열을 뒤집는다. 위 두 경우의 연산을 T와 S의 길이가 동일해질 때까지 반복해주면 된다. 오랜만에 StringBuilder를 써보니까 메소드들이 잘 기억나지가 않았다.delete(시작인덱스, 끝인덱스), reverse(), charAt() 정도는 꼭 기억해두자전체 코드import java.io.BufferedReader;import java.io.InputSt.. 2024. 11. 8.
[SQL / 프로그래머스] JOIN 문제 모음 https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 우선 5월에 만들어진 상품들의 총 주문 개수를 구해야한다고 생각했습니다.해당 쿼리는 아래와 같습니다.SELECT PRODUCT_ID, SUM(AMOUNT)FROM FOOD_ORDERWHERE PRODUCE_DATE >= '2022-05-01' AND PRODUCE_DATE  그리고 저 AMOUNT의 합과 가격을 곱해주면 된다고 생각해서 JOIN을 활용해서 정답쿼리를 썼습니다. SELECT FP.PRODUCT_ID AS PRODUCT_ID, F.. 2024. 11. 7.