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

Python

  1. 파이썬으로 배우는 통계적 사고: 데이터 시각화 기법 완벽 가이드

    통계는 머신러닝(ML)과 인공지능(AI)을 학습하는 데 있어 가장 기본이 되는 핵심 분야입니다. 파이썬은 이러한 기술 분야에서 가장 널리 사용되는 언어이기 때문에, 통계 분석을 포함하는 파이썬 프로그램을 작성하는 능력은 필수적입니다. 이 글에서는 다양한 파이썬 모듈을 활용해 그래프와 차트를 만드는 방법을 단계별로 살펴보겠습니다. 이러한 시각화 도구들은 데이터를 빠르게 분석하고, 패턴을 발견하며, 결론을 그래픽으로 도출하는 데 큰 도움을 줍니다.데이터 준비이번 실습에서는 다양한 밀 종자(wheat seeds)에 대한 정보를 담고 있는

  2. Python에서 별표(*)와 쌍별표(**) 활용법 총정리

    파이썬 프로그래밍 언어에서 *(별표)와 **(쌍별표)는 사용되는 위치와 문맥에 따라 완전히 다른 기능을 수행합니다. 단순한 곱셈 연산부터 함수의 가변 인자 처리, 이터러블 언패킹까지 그 활용 범위가 매우 넓습니다. 이 글에서는 두 연산자의 주요 사용 사례를 예제 코드와 함께 자세히 살펴보겠습니다.중위 연산자(Infix Operator)로 사용하기*가 중위 연산자로 사용되면 숫자들의 수학적 곱셈 결과를 반환합니다. 아래 예제에서는 정수, 실수, 복소수를 각각 곱한 결과를 확인할 수 있습니다.예제# 정수 x = 20 y = 10 z =

  3. Python 날짜·시간 다루기: datetime 모듈 핵심 가이드

    날짜와 시간을 조작하는 것은 모든 프로그래밍 언어에서 빼놓을 수 없는 필수 작업입니다. Python은 표준 라이브러리에 datetime 모듈을 포함하고 있어, 날짜와 시간 관련 거의 모든 기능과 함수를 별도 설치 없이 바로 사용할 수 있습니다. 이 글에서는 datetime 모듈을 활용해 날짜와 시간을 처리하는 다양한 방법을 예제와 함께 살펴보겠습니다. 현재 날짜 다루기 datetime 모듈에는 datetime이라는 클래스가 내장되어 있습니다. 이 클래스를 임포트해 datetime 객체를 생성한 뒤, 다양한 포매팅 기법을 적용하여

  4. 파이썬으로 이진 문자열에서 연속된 1의 최대 길이 구하기

    숫자의 이진 표현을 다루다 보면, 해당 수 안에 연속된 1이 몇 개 있는지 확인해야 하는 경우가 종종 발생합니다. 예를 들어 비트 연산 최적화나 데이터 분석 작업에서 유용하게 활용될 수 있는데요. 이 글에서는 파이썬으로 이진 문자열에서 연속된 1의 최대 길이를 구하는 두 가지 방법을 예제 코드와 함께 소개합니다.방법 1: split()과 map() 함수 활용파이썬의 split() 함수는 주어진 문자열을 특정 구분자를 기준으로 여러 개의 문자열로 나누는 기능을 합니다. 여기서는 0을 구분자로 사용해 문자열을 자른 뒤, 각 조각의 길이

  5. Python으로 소수(Prime Number) 판별하기 – 기본 알고리즘부터 6i±1 최적화 기법까지

    소수(素數, Prime Number)는 암호학을 비롯한 다양한 컴퓨터 과학 분야에서 핵심적인 역할을 담당합니다. 대표적으로 RSA와 같은 공개키 암호 알고리즘은 큰 소수의 곱을 기반으로 보안성을 확보합니다. 그렇기 때문에 Python 프로그램에서 주어진 수가 소수인지 아닌지를 판별하는 것은 여러 응용 프로그램에서 반드시 필요한 작업입니다. 소수란 1과 자기 자신 외에는 어떤 약수도 가지지 않는 수를 의미합니다. 이번 글에서는 주어진 숫자가 소수인지 확인하는 파이썬 코드를 단계별로 살펴보겠습니다.기본 접근 방식어떤 수가 소수인지 판단

  6. Python itertools로 문자열의 고유한 순열 중 처음 n개만 출력하는 방법

    순열(Permutation)이란 여러 개의 객체를 서로 다른 순서로 배열할 수 있는 모든 경우의 수를 의미합니다. 하지만 주어진 객체 목록 안에 동일한 객체가 두 개 이상 포함되어 있다면, 서로 다른 순열끼리 결과가 같아지는 경우가 발생합니다. 이 글에서는 객체 목록에서 중복을 제거한 고유한 순열만 추출하여 원하는 개수만큼 출력하는 방법을 알아보겠습니다.itertools.permutations와 set 활용하기Python의 표준 라이브러리인 itertools 모듈에는 permutations라는 메서드가 있어 순열 생성을 손쉽게 처리

  7. 파이썬에서 천 단위 구분 기호(쉼표)로 숫자 출력하는 방법

    세 자리 이상의 숫자를 다룰 때는 쉼표를 사용해 적절하게 표현해야 하는 경우가 많습니다. 이는 특히 회계 업무나 금융 분야에서 필수적인 요구 사항입니다. 예를 들어 140045라는 숫자보다 140,045가 훨씬 읽기 쉽습니다. 이번 글에서는 파이썬을 활용해 숫자의 적절한 위치에 쉼표를 삽입하는 방법, 즉 천 단위(thousand separator) 구분 기호를 추가하는 방법을 알아보겠습니다.format 함수 활용하기파이썬의 format 함수와 f-string에 아래와 같은 형식 지정자를 사용하면 간단하게 천 단위 쉼표를 넣을 수 있

  8. 파이썬으로 만드는 학생 성적 계산기 프로그램 완벽 가이드

    학업 환경에서는 시험이나 평가가 끝난 후 학생들의 성적을 산출해야 하는 경우가 매우 흔합니다. 이 글에서는 미리 정해진 성적 기준에 따라 자동으로 등급을 부여하는 파이썬 프로그램을 만들어 보겠습니다. 이 프로그램을 A 성적 계산기라고 부르겠습니다. 성적 기준 아래는 이번 프로그램에서 사용할 성적 산출 기준입니다. 백분율 점수에 따라 등급이 결정됩니다. score >= 90 : O score >= 80 : A+ score >= 70 : A score >= 60 : B+ score >= 50 : B scor

  9. 파이썬으로 인도 국기 그리기 프로그램 만들기

    파이썬의 그래프 그리기 라이브러리는 매우 방대한 기능을 갖추고 있어, 단순한 차트를 넘어 국기처럼 다양한 도형을 자유롭게 그릴 수 있습니다. 이런 점에서 해당 모듈에는 예술적인 감각까지 담겨 있다고 할 수 있습니다. 이번 글에서는 numpy와 matplotlib 라이브러리를 활용해 인도 국기를 그리는 방법을 단계별로 알아보겠습니다. 접근 방식 동일한 폭의 직사각형 세 개를 만들고, 각각 적절한 색상과 테두리로 채웁니다. pyplot 함수를 사용해 가운데 직사각형의 중앙에 아소카 차크라(Ashok Chakra)의 원을 그립니다. n

  10. 파이썬으로 피라미드 패턴 출력하기 – 반복문 활용 예제 총정리

    파이썬(Python)의 for 루프와 range 함수를 활용하면 다양한 형태의 피라미드 구조를 손쉽게 그릴 수 있습니다. 이 접근법의 핵심은 출력하려는 기호가 놓일 세로·가로 공간을 고려하여 적절한 for 루프를 설계하는 것입니다. 아래에서는 난이도별로 네 가지 피라미드 패턴을 코드 예제와 함께 살펴보겠습니다. 패턴 1 – 직각삼각형 가장 기본적인 형태로, 왼쪽 하단을 기준으로 하는 직각삼각형 모양의 패턴입니다. 바깥 루프는 줄 수를, 안쪽 루프는 해당 줄에 출력할 별표(*)의 개수를 담당합니다. 예제 코드 def pyramid(p

  11. 파이썬으로 피크(Peak) 요소 찾기 – 이진 탐색 알고리즘 완벽 가이드

    피크(Peak) 요소란? 배열에서 피크 요소란 자신의 바로 옆에 있는 이웃 요소들보다 값이 큰 원소를 의미합니다. 입력 배열 nums가 주어지며, 모든 i에 대해 nums[i] ≠ nums[i+1]이라는 조건이 보장됩니다. 우리가 할 일은 피크 요소를 하나 찾아 해당 인덱스를 반환하는 것입니다. 배열에는 피크 요소가 여러 개 존재할 수 있으며, 이 경우 그중 어떤 피크 요소의 인덱스를 반환해도 정답으로 인정됩니다. 경계 처리를 단순하게 하기 위해 nums[-1] = nums[n] = -∞라고 가정합니다. 즉, 배열의 양 끝 바깥에

  12. 파이썬으로 섬의 개수 세기 – DFS를 활용한 그리드 문제 완벽 가이드

    2차원 그리드에 여러 개의 0(물)과 1(땅)이 있을 때, 섬의 개수를 세는 문제를 파이썬으로 해결하는 방법을 알아보겠습니다. 여기서 섬(island)이란 물로 둘러싸여 있으며, 가로 또는 세로 방향으로 인접한 땅들이 서로 연결되어 형성된 영역을 의미합니다. 그리드의 네 가장자리는 모두 물로 둘러싸여 있다고 가정합니다.문제 예시다음과 같은 그리드가 있다고 가정해 보겠습니다.11000110000010000011위 그리드에서 색칠된 영역들을 보면 총 3개의 섬이 존재합니다.해결 접근 방식이 문제는 깊이 우선 탐색(DFS)을 활용하면 효

  13. Python으로 트라이(Trie, 접두사 트리) 자료구조 구현하기

    트라이(Trie)는 문자열을 효율적으로 저장하고 탐색하기 위한 트리 기반 자료구조로, 접두사 트리라고도 불립니다. 이번 글에서는 Python으로 insert(), search(), startsWith() 세 가지 기본 연산을 갖춘 트라이를 구현하는 방법을 살펴보겠습니다. 편의상 모든 입력은 소문자 영어로만 이루어져 있다고 가정합니다.동작 예시다음과 같이 메서드를 호출했을 때 각 연산의 결과를 확인할 수 있습니다.trie = Trie()trie.insert(apple)trie.search(apple) → True 반환 (단어 appl

  14. Python으로 배열에서 K번째로 큰 요소 찾는 방법

    정렬되지 않은 배열이 주어졌을 때, 그 배열에서 k번째로 큰 요소를 찾아야 하는 경우가 있습니다. 예를 들어 배열이 [3, 2, 1, 5, 6, 4]이고 k = 2라면, 결과는 두 번째로 큰 값인 5가 됩니다.해결 접근 방법이 문제는 다음과 같은 단계로 해결할 수 있습니다.배열의 요소들을 오름차순으로 정렬합니다.k가 1이면 가장 마지막 요소(최댓값)를 반환하고, 그렇지 않으면 배열의 길이를 n이라 할 때 array[n - k]를 반환합니다.정렬된 배열에서 k번째로 큰 값은 뒤에서 k번째 위치에 있으므로, 인덱스 n-k에 접근하면 간

  15. 파이썬으로 이진 탐색 트리(BST)에서 K번째로 작은 요소 찾기

    문제 개요이진 탐색 트리(Binary Search Tree, BST)가 하나 주어져 있다고 가정해 봅시다. 이때 트리에서 K번째로 작은 요소를 찾아야 하는 것이 목표입니다.예를 들어 다음과 같은 트리가 있을 때 − 10 / \ 5 15 / \ / 2 7 133번째로 작은 요소를 찾고 싶다면 k = 3이 되고, 정답은 7이 됩니다.풀이 접근 방법BST의 핵심 성질 중 하나는 중위 순회(inorder traversal)를 수행하면 노드의 값이 오름차순으로 정렬

  16. Python으로 이진 트리의 최소 공통 조상(LCA) 찾는 방법

    이진 트리의 최소 공통 조상(LCA)이란?이진 트리가 주어졌을 때, 두 노드의 최소 공통 조상(Lowest Common Ancestor, LCA)을 찾는 문제를 살펴보겠습니다. 두 노드 p와 q의 LCA란, p와 q를 모두 자손(descendant)으로 가지면서 트리에서 가장 아래쪽에 위치한 노드를 의미합니다.예를 들어 이진 트리가 [3,5,1,6,2,0,8,null,null,7,4]로 구성되어 있다면 트리는 다음과 같은 형태가 됩니다.위 트리에서 5와 1의 LCA는 3입니다.문제 해결 접근 방법이 문제는 재귀 호출을 활용하면 깔끔

  17. 파이썬으로 자기 자신을 제외한 배열 원소들의 곱 구하기

    길이가 n(n > 1)인 정수 배열 nums가 주어졌다고 가정해 봅시다. 이때 output[i]가 nums[i]를 제외한 나머지 모든 원소들의 곱과 같도록 하는 배열 output을 구하는 것이 목표입니다. 예를 들어 입력 배열이 [1,2,3,4]라면 결과는 [24,12,8,6]이 됩니다. 중요한 제약 조건은 나눗셈 연산자를 사용하지 않고 문제를 해결해야 한다는 점입니다.문제 해결 접근 방식나눗셈 없이 이 문제를 풀려면 각 위치를 기준으로 왼쪽 원소들의 곱(접두사 곱)과 오른쪽 원소들의 곱(접미사 곱)을 활용하면 됩니다. 핵심

  18. 파이썬으로 2차원 행렬 효율적으로 검색하기 (Search a 2D Matrix II)

    문제 개요m x n 크기의 2차원 행렬이 주어졌을 때, 이 행렬 안에서 특정 값을 효율적으로 찾는 알고리즘을 작성해야 합니다. 이 행렬은 다음과 같은 두 가지 중요한 특성을 가지고 있습니다.각 행의 정수들은 왼쪽에서 오른쪽 방향으로 오름차순으로 정렬되어 있습니다.각 열의 정수들은 위에서 아래 방향으로 오름차순으로 정렬되어 있습니다.예를 들어, 행렬이 다음과 같다고 가정해 보겠습니다.14711152581219369162210131417241821232630이때 찾으려는 값(target)이 5라면 true를 반환하고, 20이라면 fal

  19. 파이썬으로 배열 속 중복 숫자 찾기 – 플로이드 사이클 탐지 알고리즘 완벽 정리

    n + 1개의 정수로 이루어진 배열 nums가 있고, 모든 원소는 1부터 n 사이의 범위에 있다고 가정해 보겠습니다. 원소 개수가 값의 범위보다 하나 더 많기 때문에(비둘기집 원리), 최소 한 개의 중복 숫자가 반드시 존재합니다. 중복 숫자가 정확히 하나만 있다고 할 때, 그 중복 숫자를 찾는 것이 이번 문제의 목표입니다. 예를 들어 배열이 [1, 3, 4, 2, 2]라면 중복 숫자는 2입니다.접근 방법: 플로이드의 토끼와 거북이 알고리즘이 문제는 플로이드의 사이클 탐지 알고리즘(Floyds Tortoise and Hare)으로 우

  20. Python으로 구현하는 가장 긴 증가 부분 수열(LIS) 알고리즘

    문제 개요 정렬되지 않은 정수 리스트가 주어졌을 때, 가장 긴 증가 부분 수열(Longest Increasing Subsequence, LIS)의 길이를 구하는 문제입니다. 예를 들어 입력이 [10, 9, 2, 5, 3, 7, 101, 18]이라면, 증가 부분 수열 [2, 3, 7, 101]이 가장 길기 때문에 출력은 4가 됩니다. 해결 전략: 이진 탐색 활용 이 문제는 단순한 동적 계획법(DP)으로도 O(n²)에 풀 수 있지만, 이진 탐색(Binary Search)을 활용하면 O(n log n)의 시간 복잡도로 더 효율적으로 해결

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:132/450  20-컴퓨터/Page Goto:1 126 127 128 129 130 131 132 133 134 135 136 137 138