[Data] CSV 파일의 데이터 병합 문제
·
Programming/CodingTest
문제: CSV 파일의 데이터 병합여러 개의 CSV 파일이 주어집니다. 각 파일에는 동일한 구조의 데이터가 포함되어 있으며, 하나의 열은 고유 ID를 가지고 있습니다.  모든 CSV 파일을 병합하여 하나의 CSV 파일로 만들고, 고유 ID를 기준으로 중복된 항목을 제거한 후, 병합된 데이터를 새로운 CSV 파일에 저장하세요.  입력 형식로그 파일은 다음과 같은 형식을 가집니다.CSV 파일 경로의 리스트 (예: csv_files = ["data1.csv", "data2.csv", "data3.csv"])CSV 파일 내용data1.csv:id,name,value1,Alice,1002,Bob,200data2.csv:id,name,value2,Bob,2503,Charlie,300data3.csv:id,name,v..
[Data] 로그 파일에서 에러 분석 문제
·
Programming/CodingTest
문제: 로그 파일에서 에러 분석여러 개의 서버 로그 파일이 주어집니다. 각 로그 파일에는 여러 줄의 로그 항목이 있으며, 각 로그 항목은 타임스탬프, 로그 레벨(ERROR, INFO, WARNING 등), 그리고 메시지를 포함합니다.각 로그 파일의 경로가 리스트로 주어질 때, ERROR 로그 항목의 개수를 세고 가장 최근의 ERROR 로그 메시지를 출력하는 프로그램을 작성하세요.  입력 형식로그 파일은 다음과 같은 형식을 가집니다.로그 파일 경로의 리스트 : (예: log_files = ["server1.log", "server2.log", "server3.log"])로그 파일 내용:server1.log:2023-07-07 12:00:00 ERROR Something went wrong2023-07-07..
[Data] 로그 파일 집계 문제
·
Programming/CodingTest
문제 : 로그 파일 집계설명 :웹 서버에서 나온 큰 로그 파일이 있습니다. 로그 파일의 각 줄에는 타임스탬프, 클라이언트의 IP 주소 및 응답 시간이 밀리초 단위로 포함되어 있습니다. 로그 파일을 읽고 IP 주소별로 데이터를 집계한 후 각 IP 주소에 대한 평균 응답 시간을 반환하는 Python 함수를 작성하세요.  입력 형식로그 파일(logfile.txt)은 다음과 같은 형식을 가집니다:# makefile2023-07-07T14:48:00Z 192.168.1.1 2002023-07-07T14:48:02Z 192.168.1.2 3052023-07-07T14:48:05Z 192.168.1.1 1802023-07-07T14:48:10Z 192.168.1.3 2102023-07-07T14:48:15Z 192...
AWS - 네트워트(Network) 개념
·
Platform/AWS
1. AWS 네트워크 다이어그램AWS에서 내부 서비스를 접근할 때, 또는 외부 인터넷을 사용할 때 다이어그램을 요약하자면 아래와 같습니다.많이 복잡하지만, 아래 다른 네트워크 개념을 보고 다시 살펴보면 어떻게 작동하는지 어느정도 이해가 됩니다.  2. CIDRCIDR란?먼저 CIDR란 개념을 알고 가야합니다.- Classless Inter Domain Routing 약자- IP 주소를 여러 네크워크 영역으로 나누기 위해 IP를 묶는 방식- 여러 개의 사설망을 구축하기 위해 망을 나누는 방법- A.B.C.D/E 형식    ㄴ 10.0.1.0/24, 172.0.0.1/12 CIDR Notation- CIDR Notation는 IP 주소의 집합입니다. 192.168.2.0/24 일 때, 각 자리가 8bit로 ..
스파크완벽가이드 - 12장 RDD
·
DataPipeline/Spark
12.0 RDD- 저수준 API는 RDD, SparkContext, 브로드캐스트 변수, 분산형 공유변수를 의미- 대부분 고수준 API (DataFrame, Dataset)을 사용하는 것이 좋음- DataFrame, Dataset 실행 시 RDD로 컴파일 됨  12.1 저수준 API란- 언제 사용할까?  - 클러스터의 물리적 데이터의 배치를 아주 세밀하게 제어하는 상황  - RDD를 사용해 개발된 기존 코드를 유지하는 경우  - 사용자가 정의한 공유 변수를 다뤄야 하는 경우 (14장 참조)- 어떻게 사용할까?  - 저수준 API 진입점인 SparkContext 사용  - spark.sparkContext  12.2 RDD 개요- RDD는 불변성을 가지고 병렬로 처리할 수 있는 파티셔닝된 레코드 모음- Da..
스파크완벽가이드 - 11장 Dataset
·
DataPipeline/Spark
11.0 DatasetDataFrame- 스파크 1.3에서 처리 속도 증가를 위해 추가 됨- 데이터를 스키마 형태로 추상화 하고, 카탈리스트 옵티마이저가 쿼리를 최적화하여 처리합니다.- DataFrame 또한 row 타입의 DataSet  ㄴ row type 참조 : https://spark.apache.org/docs/latest/api/java/org/apache/spark/sql/Row.htmlDataSet- 스파크 1.6에서 추가  - 데이터의 타입체크, 데이터 직렬화를 위한 인코더, 카탈리스트 옵티마이저를 지원하여 데이터 처리 속도를 더욱 증가- jvm 을 이용하는 언어인 스칼라와 자바에서만 사용할 수 있음- 스칼라나 자바를 사용할 때 모든 DataFrame은 Dataset을 의미- 스칼라에서는..
[이코테] [5] 다이나믹 프로그래밍 ( 동적계획법 )
·
Programming/CodingTest
다이나믹 프로그래밍 조건1. 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있다.2. 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결합니다. 예제1) 피보나치 수열def fibo(x): if x == 1 or x == 2: return 1 return fibo(x-1) + fibo(x-2)print(fibo(4)) 메모리제이션 기법- 한번 계산한 결과를 메모리 공간메 메모하는 기법- 위의 피보나치 수열에 대입해 볼 때, 이미 계산된 함수를 생략할 수 있는 장점  예제2) 개미전사- 개미 전사가 식량창고를 선택적으로 약탈하여 식량을 뺏을 때 가장 큰 식량을 얻을 수 있도록 해야합니다.- 정찰병에게 들키지 않고 식량창고를 약탈하기 위해선 최소한 한칸 이상 떨어진 식량창..
[이코테] [4] 정렬-Sort
·
Programming/CodingTest
선택정렬- 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복1) 0 5 9 7 32) 0 3 9 7 53) 0 3 5 7 9# 예제 - 이중 반복문# 시간복잡도 : O(N제곱)array = [7,5,9,0,3,1,2]for i in range(len(array)): min_idx = i for j in range(i+1, len(array)): if array[min_idx] > array[j]: min_idx = j array[i], array[min_idx] = array[min_idx], array[i]print(array)  삽입정렬- 처리되지 않은 데이터를 하나씩 골라 적절한 위치에 삽입- 선택 정렬에 비해 구현난이도가 높지만, ..
wave35
아그거뭐였지?