'코딩테스트' 카테고리의 글 목록 — SH's Devlog

코딩테스트

코딩테스트/DB

[MySQL] 프로그래머스 입양 시각 구하기(2) (SET, WITH RECURSIVE)

풀이1. SET @hour := -1; SELECT (@hour := @hour + 1) AS HOUR, (SELECT Count(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) AS COUNT FROM ANIMAL_OUTS WHERE @hour < 23 풀이2. WITH RECURSIVE HOUR AS( SELECT 0 AS h UNION ALL SELECT h+1 FROM HOUR WHERE h

코딩테스트/DB

[MySQL] DATETIME 날짜 차이 구하기(DATEDIFF 함수)

SELECT A.ANIMAL_ID, A.NAME, DATEDIFF(B.DATETIME, A.DATETIME) FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID ORDER BY DATEDIFF(A.DATETIME, B.DATETIME) ASC LIMIT 2 DATEDIFF를 사용하면 날짜 차이의 일수만큼의 값이 결과로 나온다.

코딩테스트/DB

[MySQL] MySQL 테이블 조인(Inner Join, Outer[Left, Right] Join)

조인이란? 두개 이상의 테이블을 결합하여 데이터를 출력하는 방법. 보통 Primary key혹은 Foreign key로 두 테이블을 연결합니다. 테이블을 연결하려면 적어도 하나의 칼럼은 서로 공유되고 있어야합니다. -> 두개의 다른 테이블에서 ON 조건절을 통해 만들어진 컬럼과 두개의 테이블이 별칭을 통해 생성된 컬럼이 있는 하나의 테이블을 상상하시면 쉽게 이해가 되실겁니다. Inner Join 한국말로는 내부조인이라고도 말을 하며 JOIN 조건에서 동일한 값이 있는 행만을 출력합니다. INNER JOIN 은 WHERE 절에서 사용하던 JOIN 조건을 FROM 절에서 정의하겠다는 의미이므로 USING 이나 ON 절을 필수적으로 사용해야 합니다. Left Outer Join A테이블을 기준으로 조인하고 싶..

코딩테스트/DB

[MySQL] MySQL IF, Case 조건 (프로그래머스 중성화 여부 파악하기)

IF 문 형식 : if ( 조건문, 참일때 값, 거짓일때 값) EX) select member_id, if ( isnull(birthday), '-', birthday ) from member 설명 - 멤버 테이블에서 아이디(member_id) 와 생일을 뽑는데 null 일경우는 - 를 출력, 아니면 생일을 출력 Case 문 형식 : case (조건 또는 값) when 값1 then 표시값 when 값2 then 표시값 else 표시값 end EX) select case a when '1' then a when '2' then b else c end from table_name 설명 - a 값이 '1'이면 a, '2' 이면 b, 둘다 아닐경우 c 를 출력 ifnull문 형식 : ifnull ( 값1, 값..

코딩테스트/DB

[MySQL] 컬럼의 최소 값, 최대값 가져오기(min, max 함수, 서브쿼리)

문제. Product 테이블에서 price의 값이 가장 작은 필드의 product_id, price 값을 하나만 출력해보자 풀이1. min 함수 SELECT product_id,min(price) FROM product_table; 풀이2. 서브쿼리 2-1. ORDER BY와 LIMIT을 이용 SELECT product_id, price FROM product_table WHERE price = (SELECT price FROM product_table ORDER BY price ASC LIMIT 1) LIMIT 1 2-2. 서브쿼리에서 min을 이용 SELECT product_id, price FROM product_table WHERE price = (SELECT min(price) FROM prod..

코딩테스트/DB

[MySQL] MYSQL 조건절의 조합(AND/OR/NOT/IN)

예제 테이블(Product) SELECT * FROM product_table; AND SELECT * FROM product_table WHERE name = 'TV' AND manufacturer = 'Samsung'; 풀이: Product 테이블에서 name의 값이 'TV'이고 manufacturer의 값이 'Samsung'인 필드들을 조회한다. OR AND 연산자와 정 반대의 개념인 OR 연산자는 여러가지 조건에서 하나 이상의 조건이 만족되면 데이터를 출력한다. SELECT * FROM product_table WHERE manufacturer = 'Samsung' OR manufacturer = 'Apple';..

코딩테스트/알고리즘

[백준] 2178 미로탐색 | BFS

문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력..

코딩테스트/알고리즘

[백준] 2667 단지번호 붙이기 | BFS

문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 출력 첫 번째 줄에는 총 단지수를 출력하시오. 그리고 각..

코딩테스트/알고리즘

[백준] 7576 토마토 | BFS

문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 토마토를 창고에 보관하는 격자모양의 상자들..

코딩테스트/알고리즘

[백준] 1926 그림 | DFS / BFS

https://www.acmicpc.net/problem/1926 문제 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로로 연결된 것은 연결이 된 것이고 대각선으로 연결이 된 것은 떨어진 그림이다. 그림의 넓이란 그림에 포함된 1의 개수이다. 입력 첫째 줄에 도화지의 세로 크기 n(1 ≤ n ≤ 500)과 가로 크기 m(1 ≤ m ≤ 500)이 차례로 주어진다. 두 번째 줄부터 n+1 줄 까지 그림의 정보가 주어진다. (단 그림의 정보는 0과 1이 공백을 두고 주어지며, 0은 색칠이 안된 부분, 1은 색칠이 된 부분을 의미한다) 출력 첫째 줄에는 그림의 개수, ..

반응형
seunghwaan
'코딩테스트' 카테고리의 글 목록