전체 글

안녕하세요, 데이터 분석가를 꿈꾸는 개인기록 블로그입니다:)
문제https://school.programmers.co.kr/learn/courses/30/lessons/293259 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이SELECT ROUND((SUM(IFNULL(LENGTH, 10)) / count(*)), 2) AS AVERAGE_LENGTHFROM FISH_INFO 1. NULL 값을 10으로 바꾸기IFNULL(LENGTH, 10 2. 평균 구하기SUM(IFNULL(LENGTH, 10)) / count(*) 3. 소수점 3째자리에서 반올림하기ROUND((SUM(IFNULL(LENGTH, 10)) / c..
문제https://school.programmers.co.kr/learn/courses/30/lessons/298515 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이SELECT CONCAT(max(LENGTH), 'cm') AS MAX_LENGTHFROM FISH_INFO;
문제https://school.programmers.co.kr/learn/courses/30/lessons/298516 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이SELECT count(*) AS FISH_COUNTFROM FISH_INFOWHERE DATE_FORMAT(TIME, '%Y') = '2021'; SELECT COUNT(*) AS FISH_COUNTFROM FISH_INFOWHERE YEAR(TIME) = 2021;
문제https://www.acmicpc.net/problem/2979 문제 접근예제 1을 기준으로 문제를 확인해보자. 1대 주차 -> 한대 당 5원2대 주차 -> 한대 당 3원3대 주차 -> 한대 당 1원 트럭이 주차장에 있는 시간들을 모두 계산해보면, 아래 이미지와 같다.  이렇게 3대의 주차 시간을 모두 고려하면, 위와 같이 주차장에 현재 몇 대가 있는지 알 수 있다.  이 과정을 어떻게할지 고민하다가, 최대 시간이 길지 않아(100) 그냥 배열로 만들어, 주차장에 몇 대가 있는지 판단하기로 하였다. 1. res 배열을 100개의 0배열로 만든다. 이 배열은 각 분 당 주차장에 차가 몇 대 있는지 나타내는 배열이다. res = [0] * 100 2. 주차장에 있는 시간을 순회하며, 차가 주차장에 있는..
문제https://www.acmicpc.net/problem/13305 문제 접근전체 주유소 이용 가격을 최소화하기 위해서는 가장 싼 곳에서 가장 많이 구매하여 가장 많이 이동해야한다. 주유소의 기름 가격을 순회하며, 가장 싼 곳의 주유소를 찾고, 해당 주유소의 가격이 가장 싸다면 도시를 이동할 만큼의 기름을 구매한다. 만약, 해당 주유소의 가격이 최소 금액보다 싸지 않다면 최소 금액의 주유소에서 최대한 많이 구매하도록 한다.  # 도시의 개수N = int(input())# 인접한 두 도시를 연결하는 도로의 길이를 왼쪽부터 제공length = list(map(int, input().split()))# 주요소의 리터당 가격price = list(map(int, input().split()))answer =..
문제 https://www.acmicpc.net/problem/1541 문제 접근문제의 입력은 총 3가지 이다. 예제 1의 경우55-50+40 을 55-(50+40)으로 묶으면 원하는 출력값인 -35가 도출된다.  예제 2의 경우, 10+20+30+40을 괄호없이 그냥 더하면 원하는 출력값인 100이 도출된다.  예제 3의 경우에도 2와 같다.  즉, '-' 뒤에 이어지는 '+' 연산을 모두 괄호로 묶어, 가장 큰 값을 뺄셈하게 되면 값이 작아지게 된다.  풀이 방법55-50+40을 예로 들자. 1. 먼저, '-' 를 기준으로 값을 나눈다. '55', '50+40' 2. '+' 기호가 있는 값은 덧셈 연산을 수행하고, '+' 기호가 없으면 그냥 정수로 변환한다.  3. 2에서 구한 값을 sum_list에..
문제https://www.acmicpc.net/problem/11399 문제는 길지만, 요약하자면 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하면 되는 것이다.  풀이import sys# 문제 입력받기N = int(input())lines = list(map(int, sys.stdin.readline().split()))lines.sort()sum_list = [0]# 누적합 구하기for line in lines: tmp = line + sum_list[-1] sum_list.append(tmp) print(sum(sum_list)) 먼저, 인출 시간이 적은 사람 순으로 정렬을 한 후, 각 사람마다 걸리는 시간을 합한다. 즉, 입력이 3 1 4 3 2 로 주어질 때, 1 2..
문제 설명https://www.acmicpc.net/problem/1931 그리디 알고리즘에 관한 문제이다.  문제 접근문제는 각 회의가 겹치지 않게 하면서 가장 많은 회의의 개수를 찾는 것이다. 어떻게 해야할까? 1. 회의 시작 시간을 기준으로 가장 빠른 회의 선택: 이 경우 회의 시작 시간은 빠르지만, 진행 시간이 길다면 다른 회의를 선택하지 못하므로 옳지 않다. ex) (0, 10) 과 (1, 2), (2, 4) 가 있으면, (0, 10)은 좋지 않은 선택지이다.  2. 회의 진행 시간이 짧은 기준으로 선택: 회의 진행 시간에 따라 정렬을 하면, 시작시간과 종료시간이 뒤죽박죽된다. ex) (0, 3), (1, 5), (2, 3) -> (2, 3), (0, 3), (1, 5) 3. 회의 종료 시간을 ..
A/B 테스트 시스템 구성: A/B 테스트 = 런타임 시스템 + 분석 시스템런타임 시스템 : 사용자를 A에 둘지, B에 둘지 결정 (버킷 결정, 보통 백엔드 엔지니어+데이터 분석가가 진행)-> A/B 테스트를 진행할 사용자 버킷 정보를 ETL을 통해 데이터 웨어하우스에 불러옴 (사용자별 행동, 이벤트 로그, 구매정보 등)-> 분석 시스템 : dbt 등을 통해 분석하기 좋은 테이블로 만들고, 시각화 등 진행 A/B 테스트 구현 방법- 직접 구현- SaaS 사용 (Optimizely, VWO 등, 이들은 대부분 front-end 관련 테스트를 하는데 유용함)-> 보통은 SaaS를 쓰다가 직접 구현하는 식으로 고도화됨 A/B 테스트 전체 과정- A/B 테스트 제안 (주간미팅)-> A/B 테스트 실행 & QA-..
· 기타
프로그래머스를 잠시 멈추고 백준 사이트를 통해 알고리즘 문제를 풀려한다. 그런데 입출력부터 막히는 것이다;;; 필자는 VSCode를 사용하고 있는데, 여러줄의 입력을 제공하려할 때 아래 이미지와 같이 자동으로 두 번씩 실행되는 것이였다. 왜 여러줄 입력이 안되는지 열심히 찾아봤는데결국 원인은 찾지 못했다^^;;; 아무튼 좀 짜증나는 상태에서 백준 문제 풀이를 위한 새로운 vscode 확장 프로그램을 찾아내었다.  Competitive Programming Helper (cph) cph라고 불리는 이 확장 프로그램은 문제를 풀 때, 터미널에 입출력 제공없이 여러가지 테스트 케이스들을 확인할 수 있다. 위와 같이 왼쪽바에 생긴 cph 아이콘을 누르면, input과 output 결과들을 집어넣고 실행시간, 정..
_알파카
yeonnys' 개발일지