작성중 기본 형식 SELECT * FROM TABLE; JOIN 하기 SELECT * FROM TABLE1 JOIN TABLE2 ON TABLE1.COL1 = TABLE2.COL1; GROUP으로 묶기 SELECT * FROM TABLE GROUP BY COL1 HAVING COL1 < 10; CASE WHEN 조건문 SELECT COL1, ( CASE WHEN COL2 < 10 THEN 'A' WHEN COL2 < 20 THEN 'B' ELSE 'C' END ) AS CUSTOM_COL2 FROM TABLE; 문자열 처리 concat( str1, str2 ) 통계 count( col이름 ), sum( col이름 ), avg( col이름 ), std( col이름 ), ceil( col이름 ), floor..
알고리즘
문제 set 자료구조를 구현하여 Insert, Delete, GetRandom 연산을 O(1)으로 수행할 수 있게 하라는 문제 https://leetcode.com/problems/insert-delete-getrandom-o1 LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 기본적으로 set 자료형에는 add라는 insert 함수와 remove, ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제에서 주어진 대로 구현. 아래 코드 참조 코드 def solution(num): if num==1: return 0 for i in range(500): if num == 1: return i if num%2: num *= 3 num += 1 else: num//=2 return -1
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 dp를 설정해 이전값과 그 이전값을 더해주면 됨. 여기서 두 값의 의미는 이전값 : 이전 모든 경우에 +1 해주는 경우 그 이전값: 그 이전값의 모든 경우에 +2 해주는 경우 임. 아래 코드를 보면 결국 피보나치 꼴이 된다. 코드 def solution(n): dp = [0 for _ in range(n)] dp[0] = 1 if n>1: dp[1] = 2 for i in rang..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제에서 주어진대로 a,b를 라운드별로 갱신해가며 풀이 a를 더 작은쪽으로 설정하고 a%2 조건을 넣어주는 것이 포인트,, 코드 def solution(n,a,b): res = 1 if b2: if a%2 and b-a == 1: #만남 break a, b = (a-1)//2 + 1, (b-1)//2 + 1 res += 1 n//=2 return res
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 arr 원소가 값이 작고 arr 배열 길이도 작아서 반복문 돌림 가장 큰 값을 n배 해가며 arr 모든 원소가 나누어 떨어지면 return gcd, lcm을 통해 정석으로 풀이하면, tmp = (원소 * tmp) / gcd(원소, tmp) 로 arr의 원소를 하나씩 추가해가며 lcm을 구해 풀이.. 코드 def solution(arr): i = 1 MAX = max(arr) whi..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 정렬하고 두포인터로 가장 가벼운 사람 + 가장 무거운 사람 조합으로 태워감. 제일 가벼운 사람을 태울 수 있을 때 까지 r_idx를 하나씩 빼감. 가벼운 사람을 태울 수 있으면 가능한 한 많은 가벼운 사람을 태움. 코드 def solution(people, limit): # 구명보트는 혼자타거나, 둘이타거나 people.sort() res, inter_sum = 0, 0 l_idx..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 words를 순회하면서 딕셔너리에 하나씩 추가함. 딕셔너리 형태는 {'첫글자':[word1, word2, ...] , ... } 꼴로 만들어서 이전에 등장한 word를 찾을 때의 cost를 최소화 함.. words를 순회하면서 뒷글자를 ex_end로 저장해 끝말잇기 틀린 사람있으면 return 코드 def solution(n, words): already_ = dict() alre..