Python - bisect 예제
·
Programming/Python
[ bisect 모듈 ]bisect 모듈은 이진 탐색을 쉽게 쓸 수 있게 해주는 파이썬 표준 라이브러리"정렬된 리스트"에 값을 효율적으로 삽입하거나 위치를 찾을 때 유용 [ 사용 함수 ]함수의미반환값bisect_left(a, x)좌측 삽입 위치 탐색x를 a에 넣을 때 왼쪽 인덱스bisect_right(a, x)우측 삽입 위치 탐색x를 a에 넣을 때 오른쪽 인덱스insort_left(a, x)bisect_left 위치에 삽입리스트 a가 정렬된 상태 유지insort_right(a, x)bisect_right 위치에 삽입동일 [ 예제 ]정렬 리스트에 중복을 허용하며 요소 삽입import bisectscores = [15, 22, 22, 30]bisect.insort(scores, 22) # ins..
[이코테] [7] 투포인터
·
Programming/CodingTest
투 포인터 알고리즘은 리스트에 순차적으로 접근해야 할 때두 개의 점의 위치를 기록하면서 처리하는 알고리즘. [ 문제 ]특정한 합을 가지는 부분 연속 수열 찾기 - N개의 자연수로 구성된 수열 : [1, 2, 3, 2, 5]- 합이 M인 부분 연속 수열의 개수를 구하세요.- 수행 시간 제한은 O(N)입니다. [ 풀이 ]1) left와 right 두 개의 포인터 사용:left: 부분 수열의 시작 인덱스.right: 부분 수열의 끝 인덱스 (확장하면서 합을 계산).2) 슬라이딩 윈도우 방식으로 합을 조절:합(current_sum)이 M보다 작으면 right 증가 (부분 수열 확장).합이 M보다 크면 left 증가 (부분 수열 축소).합이 M이면 카운트 증가하고 left 이동.3) 모든 요소를 한 번씩만 탐색하..
Python - Counter
·
Programming/Python
생성 및 확인from collections import Counter# 리스트 요소 개수 세기nums = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]counter = Counter(nums)print(counter) # Counter({4: 4, 3: 3, 2: 2, 1: 1})# 문자열 문자 개수 세기text = "hello world"counter = Counter(text)print(counter) # Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})# 키인덱스counter['l'] # 2counter.values()# dict_values([1, 1, 3, 2, 1, 1, 1, 1]) Counter 직..
Python - io.BytesIO 예제
·
Programming/Python
io.BytesIO란"io.BytesIO"는 바이트 기반의 I/O 작업을 수행할 때 유용합니다.파일을 다루는 것과 동일한 인터페이스를 제공하지만,실제 파일 시스템이 아닌 메모리에서 바이트 데이터를 처리합니다. 주요기능메모리에서 바이트 데이터를 처리: 데이터를 메모리 내에서 처리하므로,  빠르게 바이트 데이터를 임시로 저장하고 조작파일과 같은 인터페이스: 파일 객체와 동일한 메서드(예: read(), write(), seek())를 제공, 실제 파일처럼 데이터를 처리  사용 예시1. BytesIO 객체에 바이트 데이터 쓰기 및 읽기import io# BytesIO 객체 생성byte_stream = io.BytesIO()# 바이트 데이터를 메모리 내에 쓰기byte_stream.write(b'Hello, By..
[Data]Web log에서 유저별 페이지 방문 통계
·
Programming/CodingTest
문제웹 로그 데이터를 분석하여 각 페이지마다 유저들이 방문했는지 통계를 도출하고,유저의 나이와 성별을 기반으로 상세 통계도 구하시오. 주어진 웹 로그 데이터와 두 개의 테이블을 이용하여방문 페이지별로 유저 방문 수를 계산하고,유저의 나이대를 그룹화하여 각 페이지에서의 성별 통계를 포함한 결과를 출력해야 합니다.  요구사항- 각 페이지별로 유저 방문 수를 계산하시오.- 유저 정보를 기반으로 나이와 성별에 따라 그룹화하여, 유저 방문 수 통계를 구하시오.- 10대에서 20살인 경우는 10~20으로, 30대는 30~40으로, 50세 이상은 50~으로 표시합니다.- 유저 정보가 없는 경우, 유저 나이와 성별은 "-"로 표시합니다.- 로그는 hdfs에 저장되어 있고, 테이블은 mysql이며, Hive Table에..
[Data] Excel 파일에서 IP 주소별 금액 집계
·
Programming/CodingTest
문제Excel 파일(data.xlsx)에는 여러 사용자의 IP 주소와 금액이 포함된 데이터가 있습니다.각 사용자의 IP 주소별로 금액의 총합을 구한 후, 금액이 가장 큰 사용자부터 순서대로 출력하는 함수를 작성하시오. 파일 구조 (data.xlsx)IP Address    User     Amount192.168.1.1    Alice     100192.168.1.2    Bob      150192.168.1.1    Alice     200192.168.1.3    Charlie 300192.168.1.2    Bob       50 요구사항- Excel 파일에서 데이터를 읽어들입니다.- IP 주소별로 각 사용자의 금액의 총합을 계산합니다.- 총합을 내림차순으로 정렬한 후 출력합니다.- Python..
Python - Pandas 예제2 (Apply,Map,Time)
·
Programming/Python
1. Apply & Mapimport pandas as pd### ###### 04 Apply & Map ###### ###df= pd.read_csv('https://raw.githubusercontent.com/Datamanim/pandas/main/BankChurnersUp.csv')# Income_Category의 카테고리를 map 함수를 이용하여 다음과 같이 변경하여 newIncome 컬럼에 매핑하라dic = { 'Unknown' : 'N', 'Less than $40K' : 'a', '$40K - $60K' : 'b', '$60K - $80K' : 'c', '$80K - ..
Python - Pandas 예제1 (Filtering,Sorting,Grouping)
·
Programming/Python
1. Getting- dir, shape, columns, info, dtype, iloc# 롤 랭킹 데이터 : https://www.kaggle.com/datasnaek/league-of-legends# DataUrl = ‘https://raw.githubusercontent.com/Datamanim/pandas/main/lol.csv’import pandas as pd### ###### 01 Getting & Knowing Data ###### #### 데이터 로드, 데이터는 \t을 기준으로 구분df = pd.read_csv("https://raw.githubusercontent.com/Datamanim/pa..
wave35
'Programming' 카테고리의 글 목록