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

Python

  1. Python 리스트 초기화, 어떤 방법이 가장 빠를까?

    Python은 하나의 작업을 여러 가지 방식으로 수행할 수 있는 매우 유연한 언어입니다. 대표적인 예가 바로 리스트 초기화인데, 다양한 방법으로 같은 결과를 얻을 수 있습니다. 하지만 겉보기에 비슷해 보이는 이 방법들 사이에는 미묘하면서도 중요한 성능 차이가 존재합니다.간결함과 가독성으로 사랑받는 Python은 동시에 C++이나 Java에 비해 실행 속도가 느리다는 평가도 받아왔습니다. 특히 for 루프는 느리기로 악명이 높은 반면, map()이나 filter()처럼 내부적으로 C로 구현된 메서드는 상대적으로 빠른 것으로 알려져 있

  2. Python Kivy 창 크기 조정 및 고정 방법 완벽 가이드

    Kivy는 Python의 플랫폼 독립적 GUI 도구입니다. Android, iOS, Linux, Windows 등 다양한 운영체제에서 실행할 수 있어, 한 번 작성한 코드를 여러 플랫폼에서 그대로 사용할 수 있다는 것이 가장 큰 장점입니다. 주로 Android 애플리케이션 개발에 활용되지만, 데스크톱 애플리케이션 개발에도 충분히 사용할 수 있습니다.Kivy는 화면 크기에 맞춰 자동으로 조정되도록 설계되어 있어 창 크기를 크게 신경 쓰지 않아도 됩니다. 하지만 사용자의 요구 사항에 따라 높이나 너비를 특정 값으로 고정하거나, 반대로

  3. 파이썬 Word2Vec로 배우는 워드 임베딩: CBOW와 Skip-Gram 구현 가이드

    워드 임베딩(Word Embedding)이란?워드 임베딩은 단어를 실수(real number)로 이루어진 밀집 벡터(dense vector)에 매핑하는 언어 모델링 기법입니다. 각 단어나 구문은 여러 차원으로 구성된 벡터 공간에서 하나의 점으로 표현되며, 의미가 비슷한 단어일수록 벡터 공간에서 가까운 위치에 배치됩니다.워드 임베딩은 신경망(neural network), 동시 출현 행렬(co-occurrence matrix), 확률 모델 등 다양한 방법으로 생성할 수 있습니다.Word2Vec의 구조와 학습 방식Word2Vec은 단어

  4. Python – python-docx 모듈로 Word(.docx) 문서 다루기

    Word(.docx) 문서는 서식이 적용된 텍스트를 세 가지 객체 계층으로 감싸고 있습니다. 최하위 수준은 Run 객체, 중간 수준은 Paragraph 객체, 최상위 수준은 Document 객체입니다.따라서 일반 텍스트 편집기로는 이런 문서를 직접 편집하기 어렵습니다. 대신 파이썬에서는 python-docx 모듈을 사용해 Word 문서를 자유롭게 생성하고 조작할 수 있습니다.시작하기 전에 알아야 할 객체 구조Document(최상위): 문서 전체를 나타내며, 모든 작업의 시작점입니다.Paragraph(중간): 하나의 문단을 나타내며,

  5. Python Kivy로 버튼 만들기 – 기본 개념부터 이벤트 처리까지

    Kivy는 플랫폼에 독립적인 파이썬 GUI 도구입니다. Android, iOS, Linux, Windows 등 다양한 환경에서 실행할 수 있으며, 한 번 작성한 코드를 여러 플랫폼에서 그대로 구동할 수 있다는 점이 가장 큰 장점입니다. 주로 안드로이드 애플리케이션 개발에 활용되지만, 데스크톱 애플리케이션 개발에도 충분히 사용할 수 있습니다. 버튼(Button)은 라벨(Label)에 특정 동작을 연결해 놓은 위젯으로, 버튼을 누르거나 클릭·터치 후 손을 뗐을 때 지정된 동작이 트리거됩니다. 버튼에 함수를 연결하여 원하는 로직을 실행

  6. Python – Pandas와 XlsxWriter를 활용한 엑셀 파일 생성 방법

    Python Pandas는 데이터 분석을 위한 강력한 라이브러리입니다. 소규모 데이터셋부터 대용량 데이터셋까지 손쉽게 읽어들이고, 필터링하며, 재구성할 수 있습니다. 또한 엑셀(Excel)을 포함한 다양한 형식으로 결과를 출력하는 기능도 제공합니다. Pandas는 내부적으로 XlsxWriter 모듈을 사용하여 엑셀 파일을 작성합니다. XlsxWriter란 무엇인가? XlsxWriter는 XLSX 파일 형식으로 엑셀 파일을 생성하기 위한 Python 모듈입니다. 여러 개의 워크시트에 텍스트, 숫자, 수식 등을 기록할 수 있으며, 다음

  7. Python Matplotlib로 PNG 이미지 다루기: 의사색상, 컬러바, 보간법 완벽 가이드

    Matplotlib란?Matplotlib는 Python에서 배열의 2차원 플롯을 그리기 위한 훌륭한 데이터 시각화 라이브러리입니다. NumPy 배열을 기반으로 구축되었으며, 더 폭넓은 SciPy 스택과 함께 작동하도록 설계된 멀티 플랫폼 라이브러리입니다.이 글에서는 Matplotlib를 활용해 PNG 이미지를 읽고, 의사색상(pseudocolor)을 적용하고, 컬러바를 추가하며, 다양한 보간법(interpolation)으로 이미지를 처리하는 방법을 단계별로 살펴보겠습니다.1. 의사색상(Pseudocolor) 적용하기의사색상은 회색조

  8. Python – 여러 파일의 데이터를 하나의 마스터 파일로 통합하는 방법

    개요 파일 처리는 웹 애플리케이션 개발에서 빼놓을 수 없는 핵심 요소입니다. 파이썬은 파일을 생성하고, 읽고, 수정하고, 삭제할 수 있는 다양한 내장 함수를 제공합니다. 이미 존재하는 파일에 데이터를 쓰려면 open() 함수에 아래와 같은 모드 매개변수를 지정해야 합니다. a – Append(추가): 파일의 끝에 새로운 내용을 덧붙입니다. w – Write(쓰기): 기존 내용을 모두 지우고 새로 기록합니다. 예제 1: os 모듈로 여러 파일 병합하기 아래 예제는 한 디렉터리에 있는 여러 직원 데이터 파일(emp_1.txt, em

  9. Python openpyxl 모듈로 엑셀(Excel) 파일 읽고 쓰는 방법

    openpyxl은 확장자가 xlsx/xlsm/xltx/xltm인 엑셀(Excel) 파일을 읽고 쓸 수 있게 해주는 파이썬 라이브러리입니다. 이 모듈을 활용하면 파이썬 프로그램에서 엑셀 파일을 직접 열어 데이터를 조회하고 수정할 수 있습니다.예를 들어 수천 개에 달하는 행(row) 속에서 특정 조건에 맞는 정보만 골라내거나, 일부 데이터를 소규모로 수정해야 하는 상황이 자주 발생합니다. openpyxl 모듈을 사용하면 이런 반복적인 작업을 매우 효율적이고 간단하게 처리할 수 있습니다.openpyxl 설치하기openpyxl은 기본 라이

  10. 파이썬으로 행렬에서 서로 다른 두 행의 요소로 목표 합이 되는 모든 쌍 찾기

    고유한(unique) 요소들로 구성된 행렬과 하나의 목표 합계가 주어졌을 때, 두 요소가 반드시 서로 다른 행에서 선택되도록 하여 그 합이 주어진 값과 같아지는 모든 쌍(pair)을 찾는 문제입니다. 예를 들어 입력이 다음과 같다고 가정해 보겠습니다. 2435 6987 10111412 1311516 목표 합계(sum)가 13이라면 출력은 다음과 같습니다. [(2, 11), (4, 9), (3, 10), (5, 8), (12, 1)] 문제 해결 접근 방식 이 문제는 각 행을 먼저 정렬한 뒤, 서로 다른 두 행을 하나씩 짝지어

  11. Python으로 두 개의 BST에서 주어진 합을 만족하는 쌍 찾기

    문제 이해 두 개의 이진 탐색 트리(Binary Search Tree, BST)와 하나의 목표 합(sum)이 주어졌을 때, 두 요소의 합이 주어진 값과 같으면서 각 쌍의 요소들이 반드시 서로 다른 BST에 속하도록 하는 모든 쌍을 찾아야 합니다. 예를 들어 합이 12로 주어진 경우를 살펴보겠습니다. 이때 출력은 [(6, 6), (7, 5), (9, 3)]이 됩니다. 접근 방법 이 문제의 핵심 아이디어는 간단합니다. BST를 중위 순회(inorder traversal)하면 항상 오름차순으로 정렬된 리스트를 얻을 수 있습니다. 따라

  12. Python으로 이진 트리 같은 레벨의 리프 노드 합계 곱 구하기

    문제 개요이진 트리(Binary Tree)가 주어졌을 때 다음 두 가지 작업을 수행해야 합니다.각 레벨(level)에 리프 노드가 존재하면 해당 레벨에 있는 모든 리프 노드 값의 합을 구합니다. 리프 노드가 없는 레벨은 무시합니다.구한 모든 합계를 서로 곱한 결과를 반환합니다.예를 들어 아래와 같은 이진 트리가 입력으로 주어진다고 가정해 보겠습니다.이 경우 출력값은 270입니다. 첫 번째와 두 번째 레벨에는 리프 노드가 없고, 세 번째 레벨에는 리프 노드 9 하나만 존재합니다. 마지막 레벨에는 2, 12, 5, 11 네 개의 리프

  13. Python 연락처 목록에서 동일한 연락처 찾기 — 그래프와 DFS 활용

    문제 상황사용자 이름(username), 이메일(email), 전화번호(phone)를 임의의 순서로 저장하고 있는 연락처 목록이 있다고 가정해 보겠습니다. 이때 동일한 사람이 여러 개의 다른 연락처 정보를 가지고 있는 경우를 찾아, 같은 사람의 연락처들을 하나로 묶어 반환해야 합니다.문제를 풀 때 다음 두 가지 조건을 염두에 두어야 합니다.연락처 객체는 username, email, phone 필드를 어떤 순서로든 저장할 수 있습니다.두 연락처는 동일한 username, 동일한 email, 또는 동일한 전화번호 중 하나라도 일치하면

  14. 파이썬으로 은행 지도에서 경비원까지의 최단 거리 찾기 (다중 시작점 BFS)

    문제 설명 은행 지도를 나타내는 행렬이 주어집니다. 각 셀은 다음 세 가지 문자 중 하나를 가집니다. O: 빈 공간 (이동 가능) G: 경비원 위치 (시작점) W: 벽 (이동 불가) 모든 빈 공간(O)을 가장 가까운 경비원(G)까지의 최단 거리로 대체해야 합니다. 벽(W)은 통과할 수 없습니다. 결과 행렬에서 경비원은 0, 벽은 -1으로 표시합니다. 입력 및 출력 예시 입력 행렬 (5x5) OOOOG OOOWO OWOOO GWWWO OOOOG 출력 행렬 (거리 값)

  15. 파이썬으로 두 배열에서 합이 같은 부분 배열 찾기

    문제 정의크기가 N인 두 배열 P와 Q가 있고, 두 배열에는 1부터 N 사이의 숫자들이 들어 있다고 가정해 봅시다. 이때 각 배열에서 연속된 구간, 즉 부분 배열(sub-array)을 하나씩 골라 두 합이 정확히 같아지도록 만들어야 합니다. 조건을 만족하는 부분 배열의 인덱스를 반환하고, 가능한 조합이 존재하지 않는다면 -1을 출력하면 됩니다.예를 들어 입력이 다음과 같다고 해보겠습니다.P = [2, 3, 4, 5, 6]Q = [9, 3, 2, 6, 5]이 경우 첫 번째 배열의 인덱스 0, 1, 2와 두 번째 배열의 인덱스 0이 정

  16. Python으로 최대 Bitwise AND와 Bitwise OR 합을 갖는 부분 수열 찾기

    n개의 원소로 이루어진 배열이 주어졌을 때, 두 개의 부분 수열(서로 같아도 달라도 무방합니다)을 선택하여 첫 번째 부분 수열의 모든 원소에 대한 비트 AND 연산 결과와 두 번째 부분 수열의 모든 원소에 대한 비트 OR 연산 결과의 합이 최대가 되도록 만들어야 합니다.예를 들어 입력이 A = {4, 6, 7, 2}라면 출력은 14가 됩니다. 7 하나만 선택했을 때 최대 AND 값인 7을 얻을 수 있고, 모든 원소를 선택했을 때 최대 OR 값인 (4 | 6 | 7 | 2) = 7을 얻을 수 있기 때문입니다. 따라서 최종 결과는 7

  17. Python에서 모든 모음을 포함하는 부분 문자열 찾기

    소문자 알파벳으로만 구성된 문자열이 주어졌다고 가정해 봅시다. 이때 찾아야 할 것은 모든 모음(a, e, i, o, u)을 적어도 한 번씩 포함하면서, 자음은 하나도 없는 부분 문자열입니다.예를 들어 입력 문자열이 helloworldaeiouaiunicestring이라면, 조건을 만족하는 부분 문자열은 다음과 같습니다.aeiouaeiouaaeiouaiaeiouaiueiouaeiouaieiouaiu문제 해결 접근 방법이 문제는 다음 단계에 따라 해결할 수 있습니다.문자열의 길이를 n에 저장합니다.0부터 n-1까지의 각 시작 인덱스 i

  18. 파이썬으로 특정 셀의 행과 열을 제외한 행렬 전체 요소의 합 구하기

    문제 소개2차원 행렬과 여러 개의 셀 인덱스가 주어졌다고 가정해 보겠습니다. 셀 인덱스는 (i, j) 형태로 표현되며, 여기서 i는 행(row), j는 열(column)을 의미합니다. 이때 주어진 각 셀 인덱스 (i, j)마다, 해당 i번째 행과 j번째 열에 속한 모든 요소를 제외한 나머지 행렬 요소들의 합을 구해야 합니다.예를 들어 다음과 같은 3x3 행렬이 있다고 해보겠습니다.223457643셀 인덱스가 [(0, 0), (1, 1), (0, 1)]로 주어진다면, 결과는 [19, 14, 20]이 됩니다.결과 검증(0, 0): 0번

  19. Python으로 두 문자열 비교하기: 패턴 문자 중 가장 먼저 나타나는 문자 찾기

    두 개의 문자열이 주어진다고 가정해 봅시다. 하나는 기준이 되는 문자열 str이고, 다른 하나는 패턴 문자열 patt입니다. 이때 우리가 해야 할 일은 str에서 가장 작은 인덱스에 등장하는 patt의 문자를 찾는 것입니다. 만약 patt의 어떤 문자도 str에 존재하지 않는다면 -1을 반환하면 됩니다.예를 들어 입력이 str = helloworld, patt = wor라고 해 보겠습니다. 이 경우 출력은 o가 됩니다. w는 인덱스 6, o는 인덱스 4, r은 인덱스 7에 위치하므로, 세 문자 중 가장 앞쪽에 있는 o가 정답이기 때

  20. 파이썬으로 직사각형의 누락된 네 번째 꼭짓점 좌표 찾기

    Q × P 크기의 격자(grid)가 주어졌다고 가정해 보겠습니다. 이 격자에는 정확히 세 개의 별표(*)가 있고, 나머지 칸은 모두 점(.)으로 채워져 있습니다. 여기서 *는 직사각형의 꼭짓점을 의미합니다. 우리의 목표는 누락된 네 번째 꼭짓점의 좌표를 찾는 것입니다. 이 문제에서는 1부터 시작하는 인덱싱(1-based indexing)을 사용합니다.예를 들어 입력이 grid = [.*., ..., *.*]라면 출력은 (1, 3)이 됩니다. 이것이 바로 누락된 좌표입니다.문제 해결 접근 방식이 문제의 핵심 아이디어는 간단합니다. 직

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:157/450  20-컴퓨터/Page Goto:1 151 152 153 154 155 156 157 158 159 160 161 162 163