목록전체 글 (141)
썬키의 개발노트

0. 검색(Search)이란? ㆍ여러 개의 데이터 안에서 원하는 데이터를 찾아내는 알고리즘 ㆍ탐색키(search key, 자료를 구별하여 인식할 수 있는 키)를 가진 항목을 찾는 것 ㆍ검색 종류 : 순차 검색(선형 검색, Sequential Search), 이진 검색(Binary Search) 1. 순차 검색(선형 검색, Sequential Search) ㆍ일렬(배열)로 되어 있는 자료를 순서대로 검색하는 방법 - 가장 간단하고 직관적인 방법 - 순차구조로 된 자료구조에서 원하는 항목을 찾을 때 유용 - 단순하여 구현은 쉽지만, 검색 대상의 수가 많은 경우 수행시간이 증가하여 비효율적인 부분이 있음 2. 검색 과정 1) 정렬되어 있지 않은 경우 검색 과정 ㆍ첫 번째 원소부터 순서대로 검색 대상과 키 값이..

1. 선택 정렬(Selection Sort)이란? ㆍ대상 데이터에서 최대나 최소 데이터를 나열된 순으로 찾아가며 선택하는 방법 2. 정렬 과정 ㆍ최소값을 찾는다. ㆍ가장 앞에 있는 데이터와 선택된 데이터를 swap ㆍ남은 부분이 없을 때까지 반복 3. 시간복잡도 ㆍO(n²) 4. 코드예제 import java.util.Arrays; public class SelectionSort { public static void main(String[] args) { // TODO Auto-generated method stub // 5개의 원소를 가지는 배열을 생성 int[] arr = new int[5]; // arr배열에 1~6까지의 난수를 넣는다. for (int i = 0; i < arr.length; i+..

1. 버블 정렬(Bubble Sort)이란? ㆍ두 인접한 데이터의 크기를 비교해 정렬하는 방법(오름차순, 내림차순) ㆍ인접한 데이터 간의 swap 연산으로 정렬 ㆍ교환하며 자리를 이동하는 모습이 물 위에 올라오는 거품 모양과 같다고 하여 버블 정렬이라 함 2. 정렬 과정 ㆍ인접한 데이터 값을 비교 ㆍ조건에 부합하면 swap 연산을 수행 ㆍ범위가 끝날 때까지 반복 3. 시간복잡도 ㆍ O(n²) 4. 코드 예제 import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { // TODO Auto-generated method stub // 배열을 선언하고 원소를 5개로 초기화 int[] arr = { 42,..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 링크를 클릭하면 해당 문제로 이동합니다. 분명, 이 쿼리가 맞는데 왜 실행이 안될까?.. 한 2시간 가량 잡고 있었던 문제였다. 접근 방법이 아예 틀렸으면 화도 안나는데, 겨우 단어? 하나 때문에 시간을 저만큼 끌었다는게 킹받음... 1. 접근하기 첫 번째로, GROUP BY절에서 MEMBER_ID로 묶어버리고 COUNT(REVIEW_ID)를 사용해서 리뷰를 제일 많이 작성한 사람이 누구인지 알아보자. # 리뷰를 가장 많이 작성한 MEMBER_ID SELECT MEMBER_ID FROM REST_REVIEW ..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 링크를 클릭하면 해당 문제로 이동합니다. 1. 접근하기 문제를 보자마자 SELF JOIN을 이용해서 풀어봐야겠다 라는 생각이 들었다. 우유가 든 장바구니 테이블과 요거트가 든 장바구니 테이블을 JOIN해서 둘의 CART_ID는 같다 라는 조건을 주면 되겠다. 2. 풀이 SELECT DISTINCT A.CART_ID FROM CART_PRODUCTS A, ( SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Yogurt') B WHERE A.CART_ID = B.CART_ID..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 링크를 클릭하면 해당 문제로 이동합니다. 1. 접근하기 문제에서 필요한 데이터는 보호 기간인데 보호 기간은 입양일과 보호시작일 간의 차이를 구해주면 되겠다고 생각했다. 보호 기간을 기준으로 내림차순 정렬하고 LIMIT 2 를 사용하면 되겠다. MYSQL에서 두 날짜간의 차이를 구하려면 DATEDIFF(날짜1, 날짜2)를 사용하면 된다. 2. 풀이 SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I, ANIMAL_OUTS O WHERE I.ANIMAL_ID = O.ANIMAL_ID ..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 링크를 클릭하면 해당 문제로 이동합니다. 위 문제의 난이도는 2레벨인데 처음에 접했을 때는 4레벨쯤으로 보였다. 시간을 좀 많이 소요한 문제인데 막상 또 풀고나니 그렇게 어려웠던 문제는 아닌거 같다는 생각도 들었다. 1. 접근하기 처음에는 CASE WHEN 구문을 이용해서 쿼리를 작성해보았다. SELECT CASE WHEN PRICE BETWEEN 0 AND 10000 THEN '0' WHEN PRICE BETWEEN 10000 AND 20000 THEN '10000' WHEN PRICE BETWEEN 200..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 링크를 클릭하면 해당 문제로 이동합니다. 1. 접근하기 문제에서 식품분류별로~ 라고 명시되어 있으니까 GROUP BY절에 식품분류(CATEGORY)를 넣으면 되겠다고 생각했다. 그 후에, 가격이 제일 비싼~ 구문을 보고 WHERE절에 서브쿼리를 사용해서 제일 비싼 PRICE를 식품분류별로 뽑아내면 되겠다고 생각했다. 그리고, CATEGORY IN ('과자', '국', '김치', '식용유') 까지...! 2. 풀이 SELECT CATEGORY, PRICE, PRODUCT_NAME FROM FOOD_PRODUCT..

# 해당 글은 GitHub에 회원가입이 완료되었다는 전제하에 작성된 글입니다. Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp git-scm.com 컴퓨터에 Git이 설치되어 있지 않다면 위 링크에서 파일을 다운 받아 Git 설치를 먼저 진행한다. TO-DO 1. GitH..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 링크를 클릭하면 해당 문제로 이동합니다. 1. 접근하기 문제에서 각 아이스크림 성분 타입별로 총주문량을 출력하라고 했으므로 GROUP BY 절에 ICECREAM_INFO 테이블에 있는 INGREDIENT_TYPE 필드를 작성해야겠다고 생각했다. 아이스크림의 성분은 sugar_based와 fruit_based 두가지이다. 아이스크림 성분 타입 아이스크림의 총 주문량 sugar_based n fruit_based n 2. 풀이 SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) FRO..