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

Python

  1. Python 연결 리스트 홀수·짝수 노드 재배열하기

    단일 연결 리스트(singly linked list)가 주어졌을 때, 홀수 번째 위치에 있는 노드들을 모두 앞쪽으로 모으고 그 뒤에 짝수 번째 위치의 노드들을 이어 붙여야 합니다. 여기서 중요한 점은 노드에 저장된 값이 아니라 노드의 위치(인덱스)를 기준으로 한다는 것입니다. 또한 추가 메모리 없이 기존 노드의 포인터만 조작하는 제자리(in-place) 방식으로 해결하는 것이 좋습니다.예를 들어 노드가 [1, 22, 13, 14, 25]로 구성되어 있다면, 1번째·3번째·5번째(홀수) 노드인 1, 13, 25가 먼저 오고, 그 뒤에

  2. 파이썬으로 증가하는 삼중 부분 수열(Increasing Triplet Subsequence) 찾기

    문제 개요정렬되지 않은 배열이 하나 주어졌을 때, 이 배열 안에 길이가 3인 증가 부분 수열이 존재하는지 확인해야 합니다.형식적으로 표현하면 다음과 같습니다.배열에 인덱스 i, j, k가 존재하여0 ≤ i < j < k ≤ n-1 조건을 만족하면서 arr[i] < arr[j] < arr[k]를 만족하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.해결 접근 방법이 문제는 그리디(Greedy) 기법을 활용하면 선형 시간에 해결할 수 있습니다. 핵심 아이디어는 배열을 한 번 순회하면서 가장 작은 값(

  3. 파이썬으로 배열에서 가장 빈번하게 등장하는 상위 K개 요소 찾기

    정수로 이루어진 비어 있지 않은 배열이 하나 주어졌다고 가정해 봅시다. 우리가 해야 할 일은 이 배열에서 가장 자주 등장하는 상위 k개의 요소를 반환하는 것입니다. 예를 들어 배열이 [1,1,1,1,2,2,3,3,3]이고 k = 2라면, 1은 네 번, 3은 세 번 등장하므로 결과는 [1, 3]이 됩니다.문제 접근 방법이 문제는 크게 두 단계로 나누어 생각할 수 있습니다. 첫째, 각 숫자가 몇 번 등장하는지 빈도를 계산합니다. 둘째, 빈도를 기준으로 내림차순 정렬하여 상위 k개를 추출합니다. 여기서는 별도의 정렬 함수 없이 빈도를 인

  4. Python으로 문자열 접두사 검사하기 — 특정 알파벳 빈도가 더 높은 접두사만 골라내는 방법

    개요이 튜토리얼에서는 하나의 문자열과 두 개의 알파벳을 입력받아, 문자열의 모든 접두사(prefix)를 검사한 뒤 첫 번째 알파벳의 등장 빈도가 두 번째 알파벳보다 높은 접두사만 골라 출력하고, 마지막에 총 개수를 함께 보여주는 파이썬 프로그램을 작성해 보겠습니다.먼저 예제를 통해 동작 방식을 살펴보겠습니다.입력 예시 1string:- apple alphabets:- p, e출력 예시 1ap app appl apple 4apple의 접두사인 ap, app, appl, apple 네 개 모두에서 p의 개수가 e보다 많거나 같은 조건(

  5. Python에서 배열 요소의 빈도를 계산하는 2가지 방법

    이 튜토리얼에서는 배열(리스트)에 있는 모든 요소의 빈도, 즉 각 요소가 몇 번 등장하는지를 계산하는 프로그램을 작성해 보겠습니다. 빈도를 구하는 방법은 다양하지만, 여기서는 가장 많이 사용되는 두 가지 방법을 소개합니다.방법 1: 딕셔너리(dict) 활용하기딕셔너리를 사용하면 별도의 모듈 없이 순수 파이썬 문법만으로 빈도를 계산할 수 있습니다. 진행 순서는 다음과 같습니다.배열을 초기화합니다.빈도를 저장할 빈 딕셔너리를 생성합니다.리스트를 순회하면서 다음을 수행합니다.요소가 딕셔너리에 없다면 값을 1로 설정합니다.요소가 이미 딕셔

  6. 파이썬으로 OpenWeatherMap API 활용하기 – 전 세계 도시의 실시간 날씨 조회 방법

    이 튜토리얼에서는 OpenWeatherMap API를 활용해 특정 도시의 날씨 정보를 가져오는 방법을 알아봅니다. OpenWeatherMap API를 사용하려면 먼저 API 키가 필요한데, 공식 웹사이트에서 계정을 만들면 무료로 발급받을 수 있습니다.계정을 생성하고 API 키를 발급받으세요. 분당 60회 호출까지는 무료이며, 그 이상 사용하려면 유료 플랜에 가입해야 합니다. 이 튜토리얼 수준에서는 무료 버전만으로 충분합니다. HTTP 요청을 보내기 위해 requests 모듈이, 응답 데이터를 다루기 위해 json 모듈이 필요합니다.

  7. Python으로 Google Static Maps API 활용하기: 원하는 위치의 지도 이미지 가져오는 방법

    Google은 HTTP 요청에 대해 지도 이미지를 반환하는 Static Maps API를 제공합니다. 이 API를 사용하면 필요에 따라 다양한 파라미터를 조합하여 지도 이미지를 직접 요청할 수 있습니다.단, 이 API를 사용하려면 먼저 Google에서 결제 계정(Billing Account)을 생성해야 합니다. 자세한 내용은 Google Cloud 공식 웹사이트에서 확인할 수 있습니다.지도 이미지를 가져오는 단계requests 모듈을 임포트합니다.API 키와 기본 URL(https://maps.googleapis.com/maps/a

  8. 파이썬 리스트 컴프리헨션으로 리스트의 모든 0을 끝으로 이동하는 방법

    숫자로 이루어진 리스트가 주어졌을 때, 리스트 컴프리헨션(list comprehension)을 사용하면 모든 0을 리스트의 맨 뒤로 손쉽게 이동할 수 있습니다.예를 들어 [1, 3, 0, 4, 0, 5, 6, 0, 7]이라는 리스트가 있다면, 실행 결과는 다음과 같습니다.[1, 3, 4, 5, 6, 7, 0, 0, 0]리스트 컴프리헨션을 활용하면 이 작업을 단 한 줄의 코드로 처리할 수 있습니다. 아래 단계를 따라 결과를 만들어 보겠습니다.구현 단계숫자 리스트를 초기화합니다.리스트에서 0이 아닌 요소들만 추출한 리스트와, 0인 요소

  9. Python NumPy로 두 행렬 곱하기: dot() 메서드 완벽 가이드

    이 튜토리얼에서는 Python에서 NumPy 라이브러리를 사용하여 두 행렬을 곱하는 방법을 알아봅니다. NumPy를 활용하면 복잡한 행렬 연산도 아주 간단하게 처리할 수 있습니다.NumPy에는 행렬 곱셈을 위한 dot() 메서드가 내장되어 있습니다. NumPy가 아직 설치되어 있지 않다면 다음 명령어로 간단히 설치할 수 있습니다.pip install numpy행렬 곱셈 절차NumPy 라이브러리를 임포트합니다.곱할 두 개의 행렬을 초기화합니다.numpy.dot(matrix_1, matrix_2) 메서드로 행렬을 곱하고 그 결과를 변수

  10. Python calendar 모듈로 달력 출력하기 – 연간·월간 달력 한 번에 만들기

    이 튜토리얼에서는 Python의 기본 내장 모듈인 calendar 모듈을 사용해 특정 연도와 월의 달력을 출력하는 방법을 배워봅니다. Python에서는 복잡한 로직 없이 단 몇 줄의 코드만으로 달력을 만들 수 있으며, 필요한 정보는 오직 연도 숫자와 월 숫자 두 가지뿐입니다. 연간 달력 출력하기 먼저 특정 연도 전체(1월~12월)의 달력을 출력하는 방법부터 살펴보겠습니다. 아래 세 단계만 따라 하면 됩니다. calendar 모듈을 임포트(import)합니다. 출력할 연도를 숫자로 초기화합니다. calendar.calendar(ye

  11. 파이썬으로 모음만 포함된 문자열 검사하기: 입력 유효성 확인 프로그램

    프로그래밍을 하다 보면 특정 조건을 만족하는 입력만 받아야 하는 경우가 종종 있습니다. 이번 글에서는 모음(vowel)으로만 이루어진 단어나 문자열만 허용하는 파이썬 프로그램을 작성해 보겠습니다. 프로그램은 입력값이 유효한지 아닌지를 판별하여 결과를 알려줍니다. 문제 해결 접근 방식 구현 과정을 단계별로 살펴보겠습니다. 모음 리스트를 정의합니다: [A, E, I, O, U, a, e, i, o, u] 검사할 단어 또는 문장을 초기화합니다. 단어나 문장을 한 글자씩 순회하며 다음을 확인합니다. 해당 문자가 모음 리스트에 존재하는

  12. 파이썬으로 문자열에 특수 문자가 포함되어 있는지 확인하는 프로그램 작성하기

    이 튜토리얼에서는 파이썬(Python)을 사용해 문자열 안에 특수 문자가 포함되어 있는지 확인하는 프로그램을 작성해 보겠습니다. 파이썬에서는 아주 간단하게 구현할 수 있습니다.파이썬의 string 모듈에는 특수 문자들이 미리 정의되어 있어, 이를 활용하면 손쉽게 검사를 수행할 수 있습니다. 그럼 프로그램을 작성하는 단계를 하나씩 살펴보겠습니다.구현 단계string 모듈을 임포트합니다.string.punctuation에 정의된 특수 문자들을 변수에 저장합니다.검사할 문자열을 초기화합니다.map() 함수를 사용해 문자열에 특수 문자가

  13. 파이썬(Python)으로 런 렝스 인코딩(Run-Length Encoding) 구현하기

    이 튜토리얼에서는 파이썬을 이용해 런 렝스 인코딩(Run-Length Encoding)을 구현하는 방법을 알아보겠습니다. 런 렝스 인코딩은 주어진 문자열을 문자와 해당 문자의 빈도수로 구성된 새로운 문자열로 변환하는 기법입니다.예를 들어 tutorialspoint라는 문자열은 t3u1o2r1i2a1l1s1p1n1로 인코딩됩니다. 즉, 각 문자와 그 빈도수를 순서대로 나열한 뒤 모두 하나의 문자열로 합쳐 반환하는 방식입니다.구현 단계프로그램을 작성하기 위한 절차는 다음과 같습니다.run_length_encoding이라는 이름의 함수를

  14. 파이썬 Tkinter로 만드는 간단한 GUI 계산기 완벽 가이드

    이 튜토리얼에서는 파이썬의 내장 모듈인 Tkinter를 사용하여 간단한 GUI 계산기를 직접 만들어 보겠습니다. Tkinter는 파이썬에 기본으로 포함되어 있어 별도의 설치 없이 바로 사용할 수 있으며, GUI 애플리케이션을 개발하기에 가장 쉽고 간편한 도구 중 하나입니다. GUI 애플리케이션을 활용하면 데이터를 시각적으로 표현하고 사용자와 상호작용하는 프로그램을 손쉽게 구축할 수 있습니다.그럼 지금부터 간단한 GUI 계산기를 만드는 방법을 단계별로 살펴보겠습니다.구현 순서*를 사용하여 Tkinter 모듈의 모든 요소를 가져옵니다.

  15. Python map() 함수로 2차원 배열 합계 구하는 방법

    이 튜토리얼에서는 Python의 map() 함수를 사용하여 2차원 배열(2D array)의 합계를 구하는 방법을 알아보겠습니다.map() 함수는 함수(function)와 반복 가능한 객체(iterable), 두 개의 인자를 받습니다. 이 함수는 iterable의 모든 요소를 지정된 함수에 전달하고, 그 결과를 map 객체에 저장합니다. map 객체는 필요에 따라 리스트 같은 다른 반복 가능한 객체로 변환할 수 있습니다.그럼 map() 함수를 활용해 2차원 배열의 합계를 구하는 과정을 단계별로 살펴보겠습니다.구현 순서리스트를 사용하여

  16. Python doctest 모듈 활용법: docstring으로 간편하게 함수 테스트하기

    파이썬에서 docstring(문서화 문자열)은 함수와 클래스에 대한 추가 정보를 제공하는 역할을 합니다. 그런데 이 docstring을 단순한 문서화 도구를 넘어 doctest 모듈과 함께 활용하면 함수를 직접 테스트할 수도 있습니다. doctest 모듈은 코드에서 >>>로 시작하는 대화형 셸 명령을 실행하고, 그 결과가 기대했던 출력값과 일치하는지 자동으로 비교해 줍니다. doctest 작성 방법 doctest를 사용해 함수를 테스트하려면 다음 단계를 따르면 됩니다. doctest 모듈을 임포트합니다. 테스트할

  17. Python 멀티스레딩으로 백그라운드 파일 쓰기 구현하기

    이 튜토리얼에서는 Python의 멀티스레딩(Multi-threading)에 대해 알아봅니다. 멀티스레딩을 활용하면 여러 작업을 동시에 수행할 수 있어 프로그램의 효율성을 크게 높일 수 있습니다. Python은 이러한 멀티태스킹을 위해 기본적으로 threading 모듈을 제공합니다.이번 글에서는 리스트 요소들의 합을 계산하는 동시에, 백그라운드에서는 파일에 데이터를 쓰는 예제를 통해 멀티스레딩이 실제로 어떻게 동작하는지 살펴보겠습니다.프로그램 구현 순서threading 모듈을 임포트합니다.threading.Thread 클래스를 상속받

  18. 파이썬(Python) 문자열 끝에 0 채우기: ljust()와 format() 활용법

    데이터 처리 작업을 하다 보면 하나의 문자열 뒤에 다른 문자열을 덧붙여야 하는 경우가 종종 발생합니다. 특히 고정된 길이를 맞추기 위해 문자열 끝에 동적인 개수의 0(zero)을 추가해야 할 때가 있는데요. 이번 글에서는 파이썬의 다양한 문자열 함수를 활용해 주어진 문자열에 후행 0을 추가하는 방법을 알아보겠습니다.1. ljust()와 len() 활용하기파이썬의 문자열 메서드 ljust()는 지정한 너비(width)만큼 문자열을 왼쪽 정렬하여 반환합니다. 남는 공간은 fillchar로 지정한 문자로 채워지며, 기본값은 공백입니다.

  19. 파이썬 데크(Deque) 완벽 가이드: 양쪽 끝에서 삽입·삭제하는 자료구조

    파이썬에서 데크(Deque, Double-Ended Queue)는 스택과 큐처럼 데이터를 저장하는 자료구조입니다. 일반적인 큐와 달리 양쪽 끝에서 모두 삽입(append)과 삭제(pop)가 가능하다는 점이 가장 큰 특징이며, 이 덕분에 스택과 큐의 기능을 하나로 모두 구현할 수 있습니다.데크는 파이썬 표준 라이브러리인 collections 모듈을 통해 제공되며, 내부적으로 양방향 연결 리스트 기반으로 구현되어 있어 리스트(list)와 달리 양쪽 끝에서의 삽입·삭제가 O(1)의 시간 복잡도로 매우 빠릅니다.데크의 주요 메서드데크에서

  20. 파이썬 getattr() 함수 완벽 가이드 – 객체 속성에 동적으로 접근하는 방법

    파이썬으로 객체 지향 프로그래밍을 본격적으로 하다 보면 객체를 생성하고 해당 객체의 속성(attribute)에 접근해야 하는 상황이 자주 발생합니다. 객체는 일반적으로 클래스를 기반으로 생성되며, getattr() 함수는 이렇게 만들어진 객체의 속성에 접근할 때 활용할 수 있는 대표적인 내장 함수입니다.getattr() 함수란?getattr()는 getattr(객체, 속성이름) 형태로 호출하며, 문자열 형태의 속성 이름을 인자로 받아 해당 속성의 값을 반환합니다. 속성 이름을 소스 코드에 직접 작성하지 않고 실행 시점(런타임)에 동

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