목록코딩 (8)
오랑우탄의 반란

파이썬(Python)이란?1990년 암스테르담의 귀도 반 로섬(Guido van rossum)이 개발한 인터프리터 언어 * 인터프리터 언어 : 소스 코드를 한 줄씩 해석한 후 그때그때 실행해 결과를 바로 확인할 수 있는 언어로, 개발과 디버깅이 용이함 파이썬의 장점쉬운 문법: 자연어 영어 문장과 유사한 구조로 초보자도 빠르게 학습 가능오픈소스: 무료 오픈소스 소프트웨어로 플랫폼 상관 없이 실행 가능 다양한 라이브러리: 데이터 분석(numpy, pandas), 머신러닝(sklearn, TensorFlow), 웹 개발(Django, Flask) 등 다양한 라이브러리 제공커뮤니티 지원: 방대한 사용자 커뮤니티와 자료가 많아 문제 해결이 용이AI/데이터 과학 트렌드: 인공지능, 데이터 분석, 자동화 등의 분..

오늘도 오랑이는 문제를 풉니다. 모의고사 풀이 과정각 수포자의 답이 answers 리스트와 일치하는지 비교일치할 경우 리스트 형태로 각각 점수 부여부여된 점수 중 최고값에 해당하는 인덱스값 + 1 을 리스트로 반환 위 조건에 따라 코드를 설계해봅시다.우선 전체 점수와 각 수포자의 답을 리스트 형태로 저장해줍니다. def solution(answers): answer = [] score = [0,0,0] g1 = [1,2,3,4,5] g2 = [2,1,2,3,2,4,2,5] g3 = [3,3,1,1,2,2,4,4,5,5] 이제 조건을 나열해봅시다. 각 수포자에 대해 answers[ i ] 와 g[ i % 리스트 길이] 를 비교해줍니다. 나머지값으로 answers 길이가..

오늘도 오랑이는 문제를 풉니다. 과일 장수 풀이 과정score 를 순서대로 나열개수 m 씩 쪼개고 그 중 최솟값에 대해 더해서 m 을 곱한 값을 리턴위의 순서대로 진행하는 코드를 생각했습니다. 차례대로 코드를 짜봅시다. def solution(k, m, score): score.sort(reverse=True) return score #순서 확인 설명을 위한 편의 상 answer 를 리스트로 지정해서 리스트에 반복문의 결과물이 적재되는 과정이 보이도록 수정했습니다. def solution(k, m, score): answer = [] score.sort(reverse=True) for i in range(len(score)//m): answer.append(mi..

오늘도 오랑이는 문제를 풉니다. 2016년 풀이 과정필수는 아니지만 없으면 허전하기 때문에 2016년 달력을 한 번 봅시다.이 문제에서 주목해야 할 부분은 아래 두 가지입니다:날짜 % 7 = 1 은 금요일각 월의 날짜들은 이어지기 때문에 이전 월의 일수에 날짜를 더한 값 = 날짜즉, 요일과 월별 일수를 나열한 리스트 2개를 작성해주고 여기서 값을 추출해서 계산해주는 방식으로 풉니다.아까 나머지가 1일 때 금요일이기 때문에 리스트 인덱스와 맞춰서 작성해줍니다.또한 이전 달의 날짜에 b 를 더해야 하기 때문에 month 리스트는 0부터 시작하도록 해줍니다. def solution(a, b): weekday = ['THU','FRI','SAT','SUN','MON','TUE','WED'] mont..

오늘도 오랑이는 문제를 풉니다. 최대공약수와 최소공배수 최대공약수, 최소공배수의 특징을 알고 활용하는 문제입니다.1. 최대공약수 = 두 수 중 큰 수를 작은 수로 나눴을 때의 나머지 값 m%n2. 최소공배수 = 두 수의 곱을 최대공약수로 나눈 값 (m*n) / (m%n) 그래서 아래와 같이 풀었는데 어김없이 틀렸습니다. 입력이 9, 7 일 때의 케이스에 대한 나머지 계산이 더 필요하기 때문입니다. def solution(n, m): b, a = max(n,m), a = min(n,m) if b%a == 0: answer = [a,b] else: answer = [b%a,(b*a)/(b%a)] return answer 가장 간단한 풀이는 아래와 ..

오늘도 오랑이는 문제를 풉니다. 570. Managers with at Least 5 Direct Reports 셀프조인을 사용해서 풀 수 있는 간단한 문제입니다.SELECT E1.NAMEFROM EMPLOYEE E1 JOIN EMPLOYEE E2 ON E1.ID = E2.MANAGERIDGROUP BY E1.ID, E1.NAMEHAVING COUNT(E2.MANAGERID) >= 5; 하지만 주말 동안 뇌를 비운 오랑이는 순간 착각하고 멍청한 실수를 해버립니다.HAVING COUNT(DISTINCT E2.MANAGERID) 로 작성해서 틀려버렸습니다.공통 값에 대해 JOIN 되고 GROUP BY 로 묶였기 때문에 E2.MANAGERID 칼럼의 값들은 NULL 값 제외, 그리고 E1.ID 와 E1.N..

테이블을 자기 자신과 조인하는 셀프 조인에 대해 알아보겠습니다. SELF JOIN은 한 테이블 내에서 칼럼 간, 개별 값 간 대조가 필요할 때 사용할 수 있습니다. 문법은 JOIN/쉼표로 연결하고 (필수) 별칭을 붙여줍니다.SELECT column_name(s)FROM table1 T1, table1 T2WHERE condition; 아래 두 가지 예시로 SELF JOIN의 활용을 살펴보겠습니다. LeetCode | 197. Rising Temperaturehttps://leetcode.com/problems/rising-temperature/ 하나의 테이블 내의 날짜 값과 온도 값에 대한 비교가 필요하기 때문에 self join 을 사용해서 이어줍니다. from weather w1 join we..

오늘도 오랑이는 문제를 풉니다. 한 번에 풀 수 있을 것처럼 생겨서 한 번에 풀리지 않아서 머리 싸맨 문제 중 하나입니다. 역시 오랑이는 아직 갈 길이 멉니다. 문제 설명 다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다. 문제1. 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 2. 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력3. 대여 금액을 기준으..