030. CSV 데이터 처리기
Medium
바이브코딩
MCPCSVData
문제 설명
[문제]
CSV(쉼표로 구분된 표 형식 텍스트)를 처리하는 MCP 서버를 구현한다. CSV는 줄바꿈으로 행을, 쉼표로 열을 구분하며, 첫 행은 헤더(열 이름), 나머지는 데이터 행이다.
[구현할 함수]
- parse_csv(csv_string: str) -> List[List[str]]
CSV 문자열을 파싱해 행들의 배열로 반환한다. 각 행은 셀 문자열들의 배열이다. 첫 행이 헤더, 나머지가 데이터다.
- filter_rows(data: List[List[str]], column_index: int, value: str) -> int
column_index번째 열의 값이 value와 같은 데이터 행의 개수를 반환한다. 헤더(0번 행)는 세지 않는다.
- aggregate(data: List[List[str]], column_index: int) -> float
column_index번째 열의 숫자들을 모두 더한 합계를 반환한다. 헤더는 제외하며, 숫자로 변환할 수 없는 셀은 건너뛴다.
[제약]
- 행은 줄바꿈, 열은 쉼표로 구분한다.
- filter_rows, aggregate는 헤더 행(첫 행)을 계산에서 제외한다.
[예시]
parse_csv("a,b\n1,2\n3,4") -> [["a","b"], ["1","2"], ["3","4"]]
filter_rows([["a","b"],["1","2"],["3","2"]], 1, "2") -> 2
aggregate([["a","b"],["1","2"],["3","4"]], 1) -> 6 # 2 + 4, 헤더 제외
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.