프로그래밍 57

[MySQL] SQL ZOO SELECT within SELECT 답 해설

SELECT within SELECT Tutorial - SQLZOO This tutorial looks at how we can use SELECT statements within SELECT statements to perform more complex queries. namecontinentarea populationgdp AfghanistanAsia6522302550010020343000000 AlbaniaEurope28748 2831741 12960000000 AlgeriaAfrica2381741 37100000 sqlzoo.net #1 Bigger than Russia 러시아의 인구를 가져와서 모든 나라의 인구와 비교, 러시아 인구수 보다 크면 name 데이터 출력 SELECT name FRO..

[Python] 백준 13305 주유소

13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 그리디 알고리즘 : 처음에는 주유소 배열에서 최솟값 인덱스를 찾고 도로를 슬라이싱 해서 도로의 합 X 주유소 최솟값을 해주고, 주유소 최솟값 인덱스 뒤에 값들을 슬라이싱으로 다 제거 했다. 이렇게 해서 답은 나왔는데 시간 초과와 말도 안되는 비효율이 났다. 순서대로 for문을 돌아도 충분히 된다..! 1) for문을 돌며 min_value에 주유소 최솟값을 업데이트 한다. 단 첫번째의 경우 무조건 주유소를 들러야 한다. 2) (min_value * ..

[Python] 백준 4195 친구 네트워크

4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net 유니온 파인드 : 부모를 숫자가 아닌 문자열로 바꾼다고 생각하면 쉽다. 그냥 똑같은 유니온 파인드 문제인데, 파이썬만 그런지 모르겠지만, for문에서 find함수를 써서 부모가 같은 친구들의 수를 카운트 했었는데 시간 초과가 나서 number라는 새로운 딕셔너리를 만들어서 친구의 수를 저장하도록 했다. 1) parent 딕셔너리에 key = '친구이름', value = '친구이름'으로 초기화 해준다. 처음 입력 받을 때만 해야한다. 2) number ..

[MySQL] 프로그래머스 SQL String, Date 답 해설

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #1 루시와 엘라 찾기 IN은 하나라도 만족하면 참이다. SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty') #2 이름에 el이 들어가는 동물 찾기 LIKE는 문자가 포함되어있는지 확인한다. SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE (NAME LIKE '%EL%' OR NAME LIKE '%el%') AND ..

[MySQL] 프로그래머스 SQL JOIN 답 해설

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #1 없어진 기록 찾기 WHERE문에서 이름이 널 값인 데이터를 비교해준다. IS를 사용해야 한다. =를 사용하면 안된다. SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_OUTS AS OUTS LEFT OUTER JOIN ANIMAL_INS AS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID WHERE INS.ANIMAL_ID IS NULL ORDER BY OUTS.ANIMAL_ID #2 있었는데요 없었습니다 INS.DATETIME > OUTS.DATET..

[MySQL] 프로그래머스 SQL IS NULL 답 해설

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #1 이름이 없는 동물의 아이디 WHERE문에서 이름이 널 값인 데이터를 비교해준다. IS를 사용해야 한다. =를 사용하면 안된다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL #2 이름이 있는 동물의 아이디 IS NOT을 하면 널 값이 아닌 데이터를 뜻한다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL #3 NULL 처리하기 IFNULL을 사용하면 해당 값이 널 값이면 뒤에 데이터로 대체 해준다. 지금은 ..

[MySQL] 프로그래머스 SQL GROUP BY 답 해설

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #1 고양이와 개는 몇 마리 있을까 GROUP BY로 고양이와 개로 나눈다음 COUNT로 그 수를 세주면 된다. SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE #2 동명 동물 수 찾기 이름으로 나눈다음 COUNT한 값이 1보다 크면 이라는 조건을 걸어준다. HAVING은 GROUP BY 뒤에 사용하여 그룹화할 것의 조건을 걸어주도록 한다. SELECT NAME, COU..