본문 바로가기

분류 전체보기261

[문자 코드 다루기] 인코딩 방식을 추출하고 디코딩하기 import sysimport sslfrom urllib.request import urlopenssl._create_default_https_context = ssl._create_unverified_contextf = urlopen('https://www.hanbit.co.kr/store/books/full_book_list.html')# HTTP 헤더를 기반으로 인코딩 방식을 추출합니다(명시돼 있지 않을 경우 utf-8을 사용하게 합니다).encoding = f.info().get_content_charset(failobj="utf-8")# 인코딩 방식을 표준 오류에 출력합니다.print('encoding:', encoding, file=sys.stderr)# 추출한 인코딩 방식으로 디코딩합니다.t.. 2024. 12. 31.
[array] 행렬의 덧셈 링크https://school.programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1# numpy 활용import numpy as npdef solution(arr1, arr2): return (np.array(arr1) + np.array(arr2)).tolist()정답 2def solution(arr1, arr2): result = [] for i in range(len(arr1)): row = [] for j in range(len(arr1[0])): .. 2024. 12. 27.
[isdigit()] 문자열 다루기 기본 링크https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1 def solution(s): return len(s) in (4, 6) and s.isdigit() 정답 2# 정규 표현식 사용import redef solution(s): return bool(re.fullmatch(r'\d{4}|\d{6}', s)) 정답 3# 예외 처리 활용 검증def solution(s): if len(s) not in (4, 6): return False try: int(s).. 2024. 12. 27.
[등차수열] 부족한 금액 계산하기 링크https://school.programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1# 단순 반복문 사용def solution(price, money, count): total_cost = 0 for i in range(1, count + 1): total_cost += price * i return max(0, total_cost - money)정답 2# 등차수열 공식 활용def solution(price, money, count): total_cost = price * (coun.. 2024. 12. 27.
[집합] 장바구니 & 교차판매 분석 가전을 구매한 사람 중 아직 탁자를 구매하지 않은 고객을 대상으로 탁자 구매 프로모션을 진행해보려 합니다.프로모션 대상은 매출이 높은 상위 30명 고객으로 추려내구요.최종적으로 아래와 같이 “탁자"를 클릭했을 때, 오른쪽 교차 판매 대상 고객이 표시되도록 하는거죠. 대시보드 작성에 필요한 시각화는 총 3가지  2.1 제품 선택 : 제품중분류를 선택하여 집합 값을 변경도록 하는 시트2.2 제품중분류 별 매출 : 1.1 시트에서 선택한 제품을 기준으로 각 제품별 매출 비중을 표현하는 시트2.3 교차 판매 대상 : 1.2 제품중분류 별 매출에서 선택한 제품을 기준으로 교차 대상을 나타내는 시트 제품 선택 시트 제품 중분류 별 매출 시트 교차 판매 대상 시트 대시보드 동작 설정 2024. 12. 26.
[집합] 전체 매출 순위 vs 특정 지역 매출 순위 대시보드 작성에 필요한 시각화는 총 5가지 1.1 지역 매출 : 맵에 시도 별 매출 표현1.2 전체 매출 : 제품 중분류 별 매출과 순위 표현1.3 지역별 매출 : 선택된 지역을 기준으로 제품 중분류 별 매출과 순위 표현1.4 순위 비교 : 전체 매출 순위와 지역별 매출 순위 차이 표현1.5 전체 대비 매출 비율 : 선택된 지역이 매출의 얼만큼의 비중을 차지하는지 표현 지역 매출 시트전체 매출 시트전체 매출 RANK 계산된 필드 만들기// 전체 매출 RANKRANK(sum([매출]), 'desc')지역별 매출 시트  순위 비교 시트 전체 대비 매출 비율 대시보드 동작 설정 2024. 12. 26.
[파레토차트] 움직이는 참조선 그리기 수익 필드를 퀵 테이블 계산을 이용해 '누계'로 변경 누계 된 [수익] 필드를 테이블 계산 편집테이블 계산 편집에서 보조 계산 추가 [고객명] 필드를 복제하여 마크 카드의 세부정보로 추가 [고객명] 필드의 속성을 측정값 - 카운트 고유로 변경[고객명] 필드에 테이블 계산 추가마크 유형을 라인으로 변경상수 라인 추가 움직이는 참조선 만들기매개변수 만들기카운트(고유)(고객명)에 대해 매개변수를 참조하는 참조선 추가 계산된 필드 만들기: 움직이는 참조선// 계산식 이름: 움직이는 참조선IF RUNNING_SUM(COUNTD([고객명]))/WINDOW_SUM(COUNTD([고객명])) 계산식 세부정보 뷰에 추가 합계[수익]에 대해 참조선 추가 2024. 12. 26.
[테이블 계산식] 제품 대분류별 매출 기준 상위 10개 제품 나열하기 (1) [제품 대분류],[제품명] 별 [매출]의 합계를 나타낸 막대차트 시각화하기 (2) 테이블 계산을 이용해 ‘매출의 내림차순 순위’ 계산하기(3) [순위] 필드를 뷰에 추가한 다음, 계산의 기준 변경하기(4) [순위] 필드를 필터로 이동한 다음, 범위를 1~10으로 설정하기 2024. 12. 26.
[테이블 계산식] 기준월/전월 성장률 계산 (1) [매출] 필드에서 퀵테이블 계산을 이용해 ‘비율 차이' 계산하기(2) 테이블 계산 편집에서 방향과 범위, 차이 계산의 기준 조정하기(3) 비어 있는 열 필터링하기 - Last 함수 사용(4) [매출] 필드를 추가하기    Advanced1: 성장률 계산식 직접 작성하기// 계산된 필드 이름: 성장률(ZN(SUM([매출])) - LOOKUP(ZN(SUM([매출])), -1)) / LOOKUP(ZN(SUM([매출])), -1)( 기준기간 매출 - 이전 기간 매출 ) / 이전 기간 매출 Advanced2: 총계에 적용하기 2024. 12. 26.
[주문 단가 증감율] 고객 별 평균 주문 단가 증감율 구하기 분석:매출을 올리기 위한 방법은 다양하겠지만 그 중 하나로 고객의 주문 건당 단가를 높이는 것을 생각해볼 수 있습니다. 고객 별로 최근 제품을 구매한 연도와 그 이전 연도의 평균 주문 단가를 계산한 다음, 두 값을 이용해 증감율을 구하고 평균 주문 단가가 증가한 고객과 감소한 고객을 찾아내 봅니다 2019년, 2020년 매출 가져오기IF YEAR([주문 일자]) = 2019THEN [매출]ENDIF YEAR([주문 일자]) = 2020THEN [매출]END 고객 별 주문 건당 매출 합계 구하기// 계산식 이름: 고객별 주문건당 매출(2019){FIXED [고객번호],[주문 번호] :SUM (IF YEAR([주문 일자]) = 2019THEN [매출]END)}// 계산식 이름: 고객별 주문건당 매출(2020.. 2024. 12. 26.
[키워드 분석] 최근 3주 평균 순위 연속 상승 키워드 기준날짜 기준. 1주와 2주에 대한 키워드 평균 순위 계산식 작성// 계산식 이름 : 선택 -1주 평균 순위{ FIXED [Keyword], DATEPART('week', [기준날짜]) : AVG (IF DATEPART('week', [기준날짜]) - 1 = DATEPART('week', [Date])AND DATEPART('year', [기준날짜]) = DATEPART('year', [Date])THEN [Keyword Rank]END)}// 계산식 이름 : 선택 -2주 평균 순위{ FIXED [Keyword], DATEPART('week', [기준날짜]) : AVG (IF DATEPART('week', [기준날짜]) - 2 = DATEPART('week', [Date])AND DATEPART('yea.. 2024. 12. 26.
[키워드 분석] 카테고리의 키워드 별 주간 평균 순위 TOP 10 분석1. 카테고리의 키워드 별 주간 평균 순위 Top 10을 뽑아봅니다.분석2. 키워드 별 주간 평균 순위를 집계하여, 최근 3주간 평균 순위가 연속 상승한 키워드를 찾아봅니다. 평균순위를 구하는데 기준이 되는 기준날짜를 선택할 수 있도록 매개변수 생성선택한 매개변수 날짜 값을 이용해 평균 순위 구하기[선택 주 평균 순위] 계산식 만들기키워드 별로 주간 평균 순위를 구하려면  “Keyword”와 “Date (Week)” 차원이 있어야 합니다.그런데 시각화 하고자 하는 세부 수준은 “Keyword”만 이기 때문에, 계산에 필요한 세부 수준과 시각화 세부 수준이 달라지게 됩니다.// 계산식 이름: 선택 주 평균 순위{ FIXED [Keyword], DATEPART('week', [기준 날짜]) : AVG(I.. 2024. 12. 26.
[LOD 예제] 고객 행동 분석 분석 시나리오다양한 고객 행동 분석 중에서 “고객이 모바일 앱을 설치하고, 앱 설치 후 최초 이벤트가 발생하기 까지 얼만큼의 시간이 걸렸는지 분석하여 이벤트 발생 기간이 적게 걸린 고객군, 오래 걸린 고객군을 관리하고자 합니다.분석 데이터고객ID (Customer ID), 설치시간 (Install Time), 이벤트 발생 시간(Event Time) 사용고객이 앱에서 이벤트를 발생시킬 때마다 데이터가 쌓이기 때문에 이벤트 발생 시간이 여러 개 존재할 수 있음분석 방법고객 별로 여러 개의 이벤트 시간이 있기 때문에 설치 시간과 이벤트 시간의 최소값을 구하고, 그 사이의 시간이 얼마나 소요 되었는지 계산 세부 수준 계산식 작성법 2024. 12. 26.
[수익률] 달력에 수익률 표현하기 계산된 필드 만들기: 기준월 / 전월// 계산식 이름: 기준월/전월IFDATETRUNC('month',[주문 일자]) = DATETRUNC('month',[기준 날짜])THEN '기준월'ELSEIFDATETRUNC('month', [주문 일자]) = DATETRUNC('month',DATEADD('month',-1,[기준 날짜]))THEN '전월'END기준월 선택열 - 주문일자: 요일 선택행 - 주문일자: 주 번호 선택머리글 표시 해제  전체 보기 수익률 계산식 생성SUM(수익) / SUM(매출) 색상 - 수익률(사각형) 2024. 12. 26.
[YoY] 전년 동기 대비 증감율 구하기 증감율 계산 공식( 기준기간 매출의 합계 - 전년동기간 매출의 합계 ) / 전년동기간 매출의 합계 전년 대비 증감율 계산식 작성//계산식 이름 : 기준기간 매출IF[주문 일자] >= DATETRUNC('year',[기준 날짜])AND[주문 일자] //계산식 이름: [전년동기간 매출]IF[주문 일자] >= DATETRUNC('year', DATEADD('year',-1,[기준 날짜]))AND[주문 일자] // 계산식 이름 : YoY( SUM([기준기간 매출])-SUM([전년동기간 매출]) ) / SUM([전년동기간 매출]) 시각화하기 색상 편집: YoY대시보드 2024. 12. 26.
[YTD] 특정 날짜 기준 YTD, 전년도 YTD 단계(1) [기준기간 매출]과 [전년동기간 매출]을 구하는 계산된 필드 생성 - DATETRUNC, DATEADD 사용(2) 이중 축을 이용하여 시각화하기 계산된 필드 생성: 기준기간 매출 //계산식 이름 : 기준기간 매출IF[주문 일자] >= DATETRUNC('year',[기준 날짜])AND[주문 일자] 계산된 필드 생성: 전년동기간 매출 //계산식 이름: [전년동기간 매출]IF[주문 일자] >= DATETRUNC('year', DATEADD('year',-1,[기준 날짜]))AND[주문 일자]  이중축 이용하여 시각화하기 2024. 12. 26.
[MTD] 특정 날짜 기준 MTD, 전년도 MTD 단계(1) 기준 기간과 전년 동기간을 구분하는 계산된 필드 생성 - DATETURNC, DATEADD 사용(2) MTD_텍스트 시트 : 각 기간 별 매출의 합을 텍스트로 표현하기(3) MTD_라인 차트 시트 : 각 기간 별 매출의 일자별 추이를 라인 차트로 표현하기 매개변수 생성계산된 필드 생성논리 흐름 계산된 필드 만들기// 계산식 이름: MTDIF[주문 일자] >= DATETRUNC('month',[기준 날짜])AND[주문 일자] = DATETRUNC('month', DATEADD('year',-1,[기준 날짜]))AND[주문 일자]  MTD_텍스트 시트 생성    MTD 라인 차트 시트필터 - MTD 기준기간, 전년동기간 선택 주문일자(불연속형 일 선택), 매출, 색상 구분  대시보드 시트 제목에 .. 2024. 12. 26.
[key 인자] 문자역 내림차순으로 배치하기 링크https://school.programmers.co.kr/learn/courses/30/lessons/12917 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(s): return ''.join(sorted(s, reverse = True))정답 2def solution(s): s_list = list(s) s_list.sort(reverse = True) return ''.join(s_list)정답 3def solution(s): return ''.join(sorted(s, key = lambda x: -ord(x))) 첫 번째 방법은 가장.. 2024. 12. 26.
[zip] 내적 링크https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(a, b): answer = [] for i in range(len(a)): answer.append(a[i] * b[i]) return sum(answer)정답 2def solution(a, b): return sum(x * y for x, y in zip(a, b)) 2024. 12. 26.
[매개변수 드릴다운] 대분류 막대 안 중분류 수준 매출과 구성비율 제품 대분류 매개변수 생성계산된 필드 만들기 - 제품 중분류 드릴다운마크 - 색상으로 이동(제품 중분류 드릴다운)마크 - 레이블로 이동(제품 중분류 드릴다운)제품 대분류 매개변수 전체 선택 후 색상 할당계산된 필드 만들기 - 제품 중분류 레이블마크 - 레이블로 이동(제품 중분류 레이블) - 구성비율(테이블 옆으로)워크시트 매개변수 동작 편집 2024. 12. 25.