전체 글 784

[Lv.2 / 프로그래머스 / SQL] 이름에 el이 들어가는 동물 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) ANIMAL_TYPE이 DOG이면서 이름에 'el'이 들어가는 데이터를 조회해야 한다. LIKE의 와일드카드인 %를 이용하여 해결할 수 있다. SELECT ANIMAL_ID , NAME FROM ANIMAL_INS WHERE NAME LIKE "%el%" AND ANIMAL_TYPE = "DOG" ORDER BY NAME

[Lv.3 / 프로그래머스 / SQL] 오랜 기간 보호한 동물(1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) ANIMAL_INS에는 존재하지만 ANIMAL_OUTS에는 존재하지 않는 데이터를 찾아, DATETIME이 가장 낮은 3개의 데이터를 조회해야 한다. LEFT OUTER JOIN을 할 경우 위의 그림과 같이 JOIN하는 테이블에 없는 데이터도 함께 조회가 된다. 이후, WHERE절을 이용해 JOIN하는 테이블의 외래키 값이 없는 경우만 조회하도록 하자. SELECT INS.NAME , INS.DATETIME FROM ANIMAL_INS AS INS LEFT OUTER JOIN ANIMAL_..

[Lv.2 / 프로그래머스 / 파이썬] 덧칠하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 n만큼의 길이의 벽에 한 번에 m만큼의 길이로 페인트칠이 가능할 때, 빈 구역을 모두 칠할 수 있는 최소 횟수를 구해야 한다. 입출력 예와 같은 벽이 있는 것처럼 배열을 하나 구성하고, 덧칠하는 방식으로 해결했다. def solution(n, m, section): ans = 0 a = [True] * (n+1) for i in section: a[i] = False for i in range(1,n+1): if a[i] == False: a[i:i+m] = [True]*(m) ans+=1 return ..

[Lv.1 / 프로그래머스 / SQL] 최댓값 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 모든 데이터에서 가장 늦게 들어온 데이터의 날짜를 조회해야 한다. MAX를 통해 쉽게 구할 수 있다. SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS

[Lv.3 / 프로그래머스 / SQL] 있었는데요 없었습니다

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) ANIMAL_INS와 ANIMAL_OUTS 두 테이블에 모두 데이터가 존재하면서, ANIMAL_INS의 DATETIME이 ANIMAL_OUTS의 DATETIME보다 더 뒤인 데이터를 조회해야 한다. 두 테이블 모두에 존재해야 하므로 INNER JOIN을 사용하며, 날짜 조건은 WHERE을 사용하도록 하자. SELECT INS.ANIMAL_ID , INS.NAME FROM ANIMAL_INS AS INS INNER JOIN ANIMAL_OUTS AS OUTS ON INS.ANIMAL_ID =..

[Lv.3 / 프로그래머스 / SQL] 없어진 기록 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) ANIMAL_OUTS 테이블에는 있지만, ANIMAL_INS 테이블에는 존재하지 않는 데이터를 조회해야 한다. 두 테이블 모두에게 존재하는 데이터를 찾는 것이 아니니, INNER가 아닌 OUTER 조인을 사용한다. SELECT OUTS.ANIMAL_ID , OUTS.NAME FROM ANIMAL_OUTS AS OUTS LEFT OUTER JOIN ANIMAL_INS AS INS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID WHERE INS.ANIMAL_ID IS NULL O..

[Lv.2 / 프로그래머스 / SQL] 루시와 엘라 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty 중 하나일 경우를 조회해야 한다. 이렇게 여러 개의 스트링에 속하는지 여부를 판별할 때에는 IN 을 사용하면 편하게 구현할 수 있다. SELECT ANIMAL_ID , NAME , SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ("Lucy", "Ella", "Pickle", "Rogan", "Sabrina", "Mitty") ORDER BY ANIMAL_ID

[Lv.2 / 프로그래머스 / SQL] NULL 처리하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) NAME이 NULL인 경우 "No name" 이라는 값으로 대체해서 조회해야 한다. IFNULL 함수를 이용할 경우 위와 같은 NULL 처리가 가능하다. SELECT ANIMAL_TYPE , IFNULL(NAME, "No name") AS NAME , SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID 혹은 아래와 같이 IF를 이용하여 삼항 연산자 방식으로 해결할 수도 있다. SELECT ANIMAL_TYPE , IF(NAME IS NULL, "No ..

[Lv.1 / 프로그래머스 / SQL] 인기있는 아이스크림

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) TOTAL_ORDER를 기준으로 내림차순, 같다면 SHIPMENT_ID를 기준으로 오름차순 한 것의 FLAVOR를 조회해야 한다. SELECT FLAVOR FROM FIRST_HALF ORDER BY TOTAL_ORDER DESC , SHIPMENT_ID

[Lv.1 / 프로그래머스 / SQL] 나이 정보가 없는 회원 수 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 나이 정보가 NULL인 회원의 수를 조회해야 한다. SELECT COUNT(USER_ID) AS USERS FROM USER_INFO WHERE AGE IS NULL

반응형