Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python

  1. Python Matplotlib 차트에 범례(Legend) 추가하는 방법 완벽 가이드

    들어가며차트의 가장 큰 목적은 데이터를 한눈에 쉽게 이해하도록 돕는 것입니다. 백 마디 말보다 한 장의 그림이 낫다는 말처럼, 언어로 표현하기 어려운 복잡한 내용도 하나의 이미지나 차트만으로 효과적으로 전달할 수 있습니다.특히 많은 정보를 담은 그래프를 그릴 때는 범례(legend)를 활용하면 좋습니다. 범례는 각 데이터 계열이 무엇을 의미하는지 알려주어 그래프의 가독성과 이해도를 크게 높여줍니다.준비하기matplotlib에서는 범례를 다양한 방식으로 표현할 수 있으며, 특정 지점을 강조하는 주석(annotation)을 함께 사용하

  2. Python으로 MS Word 문서 다루기: 단락 생성과 이미지 삽입 완벽 가이드

    소개데이터 엔지니어링 전문가로 일하다 보면 테스터들이 Microsoft Word 문서로 작성한 테스트 결과를 자주 받게 됩니다. 스크린샷부터 아주 긴 단락까지, 워드 문서 하나에 방대한 정보가 담겨 있곤 하죠.어느 날 테스트 팀에서 도구가 자동으로 생성한 텍스트와 이미지(자동 캡처된 스크린샷)를 Word 문서에 삽입해 주는 프로그램을 만들어 달라는 요청을 받았습니다.MS Word는 다른 문서 형식과 달리 페이지라는 개념이 없고, 안타깝게도 모든 것이 단락(paragraph) 단위로 동작합니다. 따라서 문서를 깔끔하게 나누려면 줄바꿈

  3. 파이썬(Python)으로 MS Word(.docx) 문서 읽는 방법 완전 정리

    들어가며데이터 엔지니어로 일하다 보면 테스트 결과물을 마이크로소프트 워드(Word) 문서로 받는 경우가 허다합니다. 스크린샷, 링크, 그리고 아주 길고 긴 문단까지 온갖 정보가 하나의 워드 문서에 뒤섞여 들어 있죠. 워드는 본래 간단한 텍스트 문서여야 할 내용을 열 때마다 느리고 무거운 거대 파일로 만들어 버리고, 컴퓨터를 옮기면 서식이 어긋나는 고질적인 문제도 안고 있습니다.하지만 나에게 불편한 도구가 다른 사람에게는 꼭 필요한 도구일 수 있다는 점도 인정해야 합니다.본론으로 돌아가면, 파이썬의 워드 문서 지원은 생각보다 빈약합니

  4. Python으로 구조화된 문자열에서 필요한 데이터 추출하기: split()과 parse 모듈 활용법

    소개로그 파일이나 고정된 형식의 문자열에서 필요한 데이터를 추출해야 하는 경우가 자주 있습니다. 입력 형식이 미리 알려져 있다면 split() 메서드나 parse 모듈을 활용해 손쉽게 원하는 필드만 골라낼 수 있습니다. 이 글에서는 두 가지 방법을 예제와 함께 단계별로 살펴보겠습니다.예제 데이터 준비하기먼저 실습에 사용할 더미 로그 형식을 정의하겠습니다.Report: <> - Time: <> - Player: <> - Titles: <> - Country: <>실제 값이 채워진

  5. Python Matplotlib로 사용자 정의 색상과 크기를 적용한 4D 산점도 그리는 방법

    소개산점도(scatter plot)는 두 변수 사이에 어떤 관계가 있는지 확인하고자 할 때 2차원 데이터를 시각화하는 데 매우 유용한 도구입니다. 산점도는 데이터를 X값과 Y값을 가진 점(dot) 형태로 표현하는 차트입니다.구현 방법1. 다음 명령어로 matplotlib을 설치합니다.pip install matplotlib2. matplotlib을 임포트합니다.import matplotlib.pyplot as plttennis_stats = ((Federer, 20),(Nadal, 20),(Djokovic, 17),(Sampras,

  6. 파이썬 Matplotlib로 특정 조각을 강조한 파이 차트 그리는 방법

    소개가장 좋아하는 차트 유형이 무엇인지 물어본다면 어떨까요? 경영진이나 비즈니스 애널리스트에게 이 질문을 던지면 십중팔구 파이 차트(Pie Chart)라는 답이 돌아옵니다. 파이 차트는 비율과 백분율을 직관적으로 보여주는 가장 보편적인 시각화 방식이기 때문입니다.이 글에서는 파이썬의 Matplotlib 라이브러리를 사용해 파이 차트를 그리는 방법을 단계별로 살펴보고, 나아가 특정 조각을 분리(explode)하여 강조하는 방법까지 다룹니다.1. 환경 준비하기먼저 아래 명령어로 Matplotlib를 설치합니다.pip install ma

  7. Python argparse의 nargs 옵션으로 동일한 유형의 위치 인수 두 개 처리하기

    소개두 숫자에 대해 산술 연산을 수행하는 프로그램을 작성한다고 가정해 봅시다. 이 경우 일반적으로 두 개의 위치 인수(positional argument)를 정의하게 됩니다. 그런데 두 인수가 같은 종류, 즉 동일한 Python 데이터 타입이라면 argparse의 nargs 옵션을 사용해 정확히 같은 타입의 값 두 개를 받도록 지정하는 것이 더 깔끔하고 직관적인 방법입니다.구현 방법nargs 옵션을 활용하여 두 숫자의 뺄셈을 수행하는 프로그램을 작성해 보겠습니다.import argparse def get_args(): F

  8. Python argparse의 choices 옵션으로 인수 값 제한하는 방법

    소개사용자로부터 테니스 그랜드슬램 우승 횟수를 입력받아 처리하는 프로그램을 작성해야 한다고 가정해 보겠습니다. 2020년 기준으로 페더러와 나달이 테니스 역사상 최다 그랜드슬램 타이틀인 20개를 공유하고 있으며, 최솟값은 0입니다. 아직 첫 그랜드슬램 타이틀을 노리며 도전 중인 선수들도 많습니다.이 타이틀 수를 입력받는 프로그램을 만들어 보겠습니다.참고 - 프로그램은 터미널에서 실행해야 합니다.기본 예제import argparse def get_args(): """ Function : get_args .

  9. 파이썬으로 숫자 리스트에서 등차수열 개수 찾는 방법

    숫자 리스트 nums가 주어졌을 때, 길이가 3 이상인 연속된 등차수열(arithmetic sequence)의 개수를 구하는 문제입니다. 등차수열이란 인접한 두 숫자 사이의 차이가 항상 일정한 수열을 의미합니다.예를 들어 입력이 nums = [6, 8, 10, 12, 13, 14]라면 출력은 4가 됩니다. 다음과 같은 등차수열들이 존재하기 때문입니다.[6, 8, 10][8, 10, 12][6, 8, 10, 12][12, 13, 14]문제 해결 접근 방식이 문제는 한 번의 순회(O(n))로 효율적으로 해결할 수 있습니다. 핵심 아이디

  10. 파이썬으로 숫자 목록에서 산술(등차) 부분 수열의 개수 찾는 프로그램

    숫자 목록 nums가 주어졌을 때, 길이가 3 이상인 산술(arithmetic) 부분 수열의 개수를 구해야 합니다. 여기서 산술 수열(등차수열)이란 인접한 두 숫자 사이의 차이가 항상 일정한 수열을 의미합니다.예를 들어 입력이 nums = [6, 12, 13, 8, 10, 14]라면 출력은 3이 됩니다. 다음과 같은 부분 수열들이 존재하기 때문입니다.[6, 8, 10][6, 10, 14][12, 13, 14]문제 해결 접근 방법이 문제는 동적 계획법(Dynamic Programming)을 활용하면 효율적으로 해결할 수 있습니다. 각

  11. Python으로 목표값을 만드는 +와 - 기호 배치 방법의 수를 찾는 프로그램

    문제 개요 음수가 아닌 정수로 이루어진 리스트 nums와 정수 target이 주어집니다. 리스트의 각 숫자 앞에 + 또는 - 기호를 배치하여 전체 수식의 결과가 target과 같아지도록 만드는 방법이 총 몇 가지인지 구하는 것이 목표입니다. 예를 들어 입력이 nums = [2, 3, 3, 3, 2], target = 9라고 해보겠습니다. 이때 정답은 2입니다. -2 + 3 + 3 + 3 + 2 = 9 2 + 3 + 3 + 3 - 2 = 9 목표값을 만족하는 조합이 위의 두 가지뿐이기 때문입니다. 핵심 아이디어: 부분 집합 합

  12. Python으로 모든 A가 B보다 앞에 오도록 만들기 위해 삭제해야 하는 최소 문자 수 구하기

    문제 설명A와 B 두 글자로만 구성된 문자열 s가 있다고 가정해 보겠습니다. 이때, 문자열 내의 모든 A가 모든 B보다 앞쪽에 위치하도록 만들기 위해 삭제해야 하는 최소 문자 수를 구하는 프로그램을 작성해야 합니다.예를 들어 입력이 S = AABAABB라면, 마지막 A 하나만 제거하면 AABBB가 되어 조건을 만족할 수 있으므로 출력은 1이 됩니다.접근 방법이 문제는 분할 지점(split point)을 기준으로 왼쪽의 B 개수와 오른쪽의 A 개수를 추적하는 그리디 방식으로 해결할 수 있습니다. 특정 지점을 기준으로 정렬한다면, 해당

  13. 파이썬(Python)으로 연결 리스트 노드를 앞뒤로 번갈아 재배열하는 프로그램

    문제 개요단일 연결 리스트(singly linked list)가 하나 있다고 가정해 보겠습니다. 이 리스트를 마지막 노드 → 첫 번째 노드 → 뒤에서 두 번째 노드 → 앞에서 두 번째 노드 순서로 재배열해야 합니다. 즉, 뒤쪽 노드와 앞쪽 노드를 번갈아 가며 배치하는 것이 목표입니다.예를 들어 입력이 [1,2,3,4,5,6,7,8,9]라면 출력은 [9, 1, 8, 2, 7, 3, 6, 4, 5]가 됩니다.해결 전략핵심 아이디어는 간단합니다. 먼저 모든 노드의 값을 임시 리스트에 순서대로 저장한 뒤, 리스트의 끝에서 하나 꺼내고(po

  14. 파이썬으로 주식 매매 최대 이익 구하기: 쿨다운 기간이 있는 주식 거래 문제 풀이

    문제 설명어떤 회사의 주식 가격이 시간 순서대로 리스트로 주어졌다고 가정해 봅시다. 이때 주식을 사고팔아 얻을 수 있는 최대 이익을 구해야 합니다. 단, 다음 두 가지 제약 조건이 있습니다.주식을 팔기 전에 반드시 먼저 매수해야 합니다.주식을 매도한 후에는 하루를 기다린 뒤에야 다시 매수할 수 있습니다(쿨다운 규칙).예를 들어 입력이 prices = [2, 6, 9, 4, 11]이라면 출력은 11이 됩니다. 2원에 사서 6원에 팔고, 하루를 기다린 뒤 4원에 다시 사서 11원에 팔면 되기 때문입니다.풀이 접근 방법이 문제는 동적 계

  15. Python으로 이진 행렬에서 가장 왼쪽에 있는 1의 열 인덱스 찾기

    2차원 이진 행렬이 주어졌다고 가정해 보겠습니다. 이 행렬의 각 행은 오름차순으로 정렬되어 있어, 모든 0이 1보다 먼저 나타납니다. 우리의 목표는 값이 1인 가장 왼쪽 열의 인덱스를 찾는 것이며, 만약 1이 존재하지 않는다면 -1을 반환해야 합니다.예를 들어 입력이 다음과 같다고 해보겠습니다.0001001100110010이 경우 출력은 2입니다. 인덱스 2번째 열에 행렬 전체에서 가장 왼쪽에 위치한 1이 존재하기 때문입니다.문제 해결 접근 방식이 문제는 각 행이 정렬되어 있다는 특성을 활용하면 매우 효율적으로 해결할 수 있습니다.

  16. Python으로 이진수 1의 개수가 같은 바로 다음 큰 수 찾는 방법

    숫자 n이 하나 주어졌다고 가정해 보겠습니다. 우리가 해야 할 일은 이진수 표현에서 1의 개수(세트 비트)가 n과 정확히 동일하면서, n보다 큰 수 중 가장 작은 수를 찾는 것입니다.예시로 이해하기예를 들어 입력이 n = 7이라면 결과는 11이 됩니다.7의 이진수 표현: 0111 → 1이 세 개1이 세 개인 수 중 7보다 큰 가장 작은 수: 1011, 즉 십진수 11해결 알고리즘이 문제는 비트 조작(bit manipulation) 기법을 사용하면 효율적으로 해결할 수 있습니다. 핵심 아이디어는 n의 이진수에서 가장 오른쪽에 있는 연

  17. 파이썬으로 마지막 풍선을 받는 아이의 시작 인덱스 찾기

    문제 설명n명의 아이들이 원을 그린 채 서서 풍선을 받기를 기다리고 있다고 가정해 봅시다. 풍선 배분은 인덱스 0부터 시작하여 k번째 아이에게 풍선을 주고, 풍선을 받은 아이는 원을 떠나는 방식으로 진행됩니다. 이후 시계 방향으로 매 k번째 아이가 풍선을 받고 원을 떠나며, 단 한 명의 아이만 남을 때까지 이 과정이 반복됩니다. n과 k가 주어졌을 때, 마지막으로 풍선을 받게 되는 아이의 시작 인덱스를 구하는 것이 목표입니다.예를 들어 입력이 n = 3, k = 2라고 해봅시다. 이 경우 출력은 1이 됩니다. 첫 번째 라운드에서는

  18. 파이썬으로 숫자 목록의 비트를 0에서 1로 k번 변경해 최소 합 구하기

    숫자 목록 nums와 정수 k가 주어졌을 때, 다음 연산을 정확히 k번 수행한다고 가정해 보겠습니다. 목록에서 임의의 숫자를 하나 선택한 뒤, 그 숫자의 이진 표현에서 값이 0인 비트를 골라 1로 바꾸는 것입니다. 모든 연산을 마친 후 얻을 수 있는 최소 합계를 구해야 하며, 결과값이 너무 커질 경우 10^9+7로 나눈 나머지를 반환하면 됩니다. 예를 들어 입력이 nums = [4, 7, 3], k = 2라면 출력은 17이 됩니다. 4의 이진 표현은 100, 3은 011, 7은 111입니다. 두 개의 비트를 1로 바꿔야 하므로 4의

  19. 파이썬으로 폭탄 폭발 시 안전한 위치의 개수 구하기

    문제 소개2차원 이진 행렬이 주어졌을 때, 1은 폭탄이 있는 칸을, 0은 빈 칸을 의미합니다. 폭탄이 터지면 같은 행과 같은 열에 있는 모든 공간이 피해를 입게 됩니다. 우리가 구해야 할 것은 폭발로 인해 피해를 입지 않고 서 있을 수 있는 안전한 칸의 개수입니다.예시입력 행렬이 다음과 같다고 가정해 보겠습니다.110000000이 경우 출력값은 2입니다. 첫 번째 행에 폭탄이 두 개 있으므로 해당 행 전체와 각 폭탄이 위치한 열(0번 열, 1번 열)은 모두 위험합니다. 따라서 안전한 칸은 오른쪽 아래 끝 칸과 중간 행의 맨 오른쪽

  20. 파이썬으로 거래 수수료가 있을 때 주식 매매의 최대 이익 구하는 프로그램

    문제 개요 시간 순서대로 정렬된 어떤 회사의 주가 목록과, 한 번의 매도 거래당 부과되는 거래 수수료가 주어졌다고 가정해 보겠습니다. 우리가 구해야 할 것은 해당 주식을 원하는 만큼 여러 번 사고팔았을 때 얻을 수 있는 최대 이익입니다. 단, 주식을 팔기 위해서는 반드시 먼저 매수해야 한다는 조건이 있습니다. 예를 들어 입력이 prices = [2, 10, 4, 8], fee = 3이라고 해봅시다. 이 경우 출력은 6이 됩니다. 가격이 2일 때 매수하여 10일 때 매도하면 수수료 3을 제외한 이익은 5입니다. 이후 다시 가격이 4일

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:185/450  20-컴퓨터/Page Goto:1 179 180 181 182 183 184 185 186 187 188 189 190 191