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

Python

  1. 파이썬 Pandas - DateTimeIndex를 시리즈(Series)로 변환하는 방법

    DateTimeIndex를 Series로 변환하기Pandas에서 DateTimeIndex를 Series로 변환하려면 DateTimeIndex.to_series() 메서드를 사용합니다. 이 메서드는 인덱스의 날짜·시간 값을 값(value)으로 갖는 Series를 생성해 주며, 인덱스 자체도 동일한 날짜·시간 값으로 유지됩니다.필수 라이브러리 임포트먼저 필요한 라이브러리를 임포트합니다.import pandas as pdDatetimeIndex 생성기간(period)은 5로 설정하고, 빈도(freq)는 초 단위인 S로 지정하여 Datet

  2. Python Pandas – DateTimeIndex를 시간대(TimeZone) 없이 Series로 변환하는 방법

    Pandas에서 DateTimeIndex를 시간대(TimeZone) 정보를 제외한 상태로 Series로 변환하려면 datetimeindex.tz_convert(None).to_series() 메서드를 사용합니다. 여기서 tz_convert(None)은 인덱스에 설정된 시간대 정보를 제거하는 역할을 합니다.1. 필요한 라이브러리 임포트먼저 pandas 라이브러리를 임포트합니다.import pandas as pd2. DateTimeIndex 생성시작 시점을 지정하고, 주기(periods)는 5개, 빈도(freq)는 초 단위인 40S로

  3. Python Pandas – 인덱스를 무시하고 DateTimeIndex에서 DataFrame 만들기

    Pandas에서 DateTimeIndex를 DataFrame으로 변환할 때 기존 인덱스를 무시하고 싶다면 to_frame() 메서드에 index=False 매개변수를 설정하면 됩니다. 이 경우 반환되는 DataFrame에는 원래의 날짜·시간 인덱스가 설정되지 않고, 대신 0부터 시작하는 기본 정수 인덱스가 자동으로 부여됩니다. 1단계: 라이브러리 임포트 먼저 필요한 라이브러리를 임포트합니다. import pandas as pd 2단계: DatetimeIndex 생성하기 기간(periods)은 5개, 빈도(frequency)는

  4. Python Pandas - DateTimeIndex에서 DataFrame을 생성하면서 결과 열 이름 재정의하기

    DateTimeIndex에서 DataFrame을 생성하려면 datetimeindex.to_frame() 메서드를 사용합니다. 이때 name 매개변수를 지정하면 생성되는 결과 열의 이름을 원하는 값으로 자유롭게 재정의할 수 있습니다. 라이브러리 임포트 먼저 필요한 라이브러리를 임포트합니다. import pandas as pd DatetimeIndex 생성 기간(periods)은 5, 빈도(freq)는 S, 즉 초 단위로 지정하여 DatetimeIndex를 생성합니다. 타임존은 호주 애들레이드(Australia/Adelaide)로

  5. 파이썬으로 길이 k, 거리 n을 만족하는 사전순 최소 소문자 문자열 찾기

    두 개의 숫자 n과 k가 주어졌다고 가정해 보겠습니다. 이때 우리는 길이가 k이면서 거리가 n이 되는, 사전순(lexicographically)으로 가장 작은 소문자 문자열을 찾아야 합니다. 여기서 말하는 거리(distance)는 문자열을 이루는 각 알파벳의 번호를 모두 더한 값입니다. 예를 들어 a는 1번, b는 2번, y는 25번, z는 26번입니다. 따라서 입력이 n = 15, k = 3이라면 출력은 aam이 됩니다. aam의 거리는 1 + 1 + 13 = 15이며, 거리가 15인 길이 3의 문자열 중에서 사전순으로 가장 앞에

  6. Python Pandas – TimeDeltaIndex 객체 생성 방법

    TimeDeltaIndex 객체란?Pandas에서 시간 간격(time delta) 데이터를 인덱스로 다뤄야 할 때는 pandas.TimedeltaIndex() 메서드를 사용하면 됩니다. 이 메서드를 활용하면 두 시점 사이의 차이를 나타내는 timedelta 값을 하나의 인덱스 객체로 손쉽게 만들 수 있습니다.기본 사용법가장 먼저 필요한 라이브러리를 임포트합니다.import pandas as pd이어서 TimeDeltaIndex 객체를 생성합니다. 아래 예제에서는 data 매개변수에 timedelta 형식의 문자열 목록을 전달했습니다

  7. 파이썬으로 풀어보는 전구 스위치 문제: n명의 사람이 조작한 뒤 켜져 있는 전구 개수 구하기

    문제 소개방 안에 n개의 토글 스위치가 있고, 사람도 n명이 있다고 가정해 봅시다. 이들은 다음과 같은 규칙에 따라 순서대로 스위치를 조작합니다.1번 사람: 들어와서 모든 스위치를 누릅니다.2번 사람: 2의 배수 번호(2, 4, 6, ...)에 해당하는 스위치를 누릅니다.i번 사람: i의 배수 번호에 해당하는 스위치를 누릅니다. 이 과정이 n번 사람까지 반복됩니다.모든 사람이 지나간 후, 최종적으로 켜져 있는(ON) 스위치가 몇 개인지 구하는 것이 이 문제의 목표입니다.예시로 이해하기n = 5일 때를 살펴보겠습니다. 처음에는 모든

  8. Python Pandas – TimeDeltaIndex에서 각 요소의 일(day) 수 추출하기

    TimeDeltaIndex 객체의 각 요소에서 일(day) 수를 추출하려면 TimedeltaIndex.days 속성을 사용하면 됩니다. 이 속성은 각 timedelta 값에 포함된 전체 일수를 정수 형태로 반환합니다.라이브러리 가져오기먼저 필요한 라이브러리를 임포트합니다.import pandas as pdTimeDeltaIndex 객체 생성이제 TimeDeltaIndex 객체를 생성합니다. data 매개변수를 사용하여 timedelta 형식의 데이터를 설정할 수 있습니다.tdIndex = pd.TimedeltaIndex(data =

  9. 파이썬으로 리스트를 두 부분으로 나눌 때 첫 번째 파티션의 최소 길이 찾기

    문제 개요숫자로 이루어진 리스트 nums가 주어졌다고 가정해 보겠습니다. 이 리스트를 part1과 part2라는 두 부분으로 나누되, part1의 모든 요소가 part2의 모든 요소보다 작거나 같아야 한다는 조건이 있습니다. 이때 만들 수 있는 part1의 최소 길이(단, 길이가 0이 되어서는 안 됨)를 구하는 것이 목표입니다.예를 들어 입력이 nums = [3, 1, 2, 5, 4]라면 결과는 3이 됩니다. 리스트를 part1 = [3, 1, 2]와 part2 = [5, 4]로 나누면 part1의 모든 요소가 part2의 모든 요

  10. Python 이진 탐색으로 데이터베이스 저장 한도에 맞는 최대 로그 크기 찾기

    숫자 리스트 logs와 값 limit이 주어져 있다고 가정해 보겠습니다. logs[i]의 각 요소는 i번째 사용자가 생성한 로그의 크기를 나타내고, limit은 데이터베이스에 저장할 수 있는 로그의 총 크기(용량 제한)를 의미합니다. 우리가 구해야 할 것은 가장 큰 값 x입니다. 즉, 모든 로그를 각각 최대 크기 x로 잘라냈을 때 남은 로그 크기의 합이 limit 이하가 되도록 하는 x입니다. 만약 어떤 로그도 잘라낼 필요가 없다면, 단순히 가장 큰 로그의 크기를 그대로 반환하면 됩니다.예를 들어 입력이 logs = [500, 20

  11. 파이썬으로 0을 한 번만 뒤집어 만들 수 있는 가장 긴 연속된 1의 부분 문자열 길이 구하기

    문제 개요이진 문자열(binary string) s가 주어졌다고 가정해 보겠습니다. 우리는 최대 한 개의 0을 1로 뒤집을 수 있으며, 이 조건에서 만들 수 있는 가장 긴 연속된 1의 부분 문자열 길이를 구하는 것이 목표입니다.예를 들어 입력이 s = 1010110001이라면, 인덱스 3에 있는 0을 뒤집아 1011110001을 만들 수 있습니다. 이 문자열에서 가장 긴 연속된 1의 길이는 4이므로, 출력 결과는 4가 됩니다.접근 방법: 슬라이딩 윈도우이 문제는 슬라이딩 윈도우(Sliding Window), 즉 투 포인터 기법을 사

  12. 파이썬으로 일정한 차이를 갖는 가장 긴 등차 부분 수열의 길이 구하기

    숫자 리스트 nums와 정수 값 diff가 주어졌다고 가정해 봅시다. 이때 부분 수열 내에서 인접한 두 숫자의 차이가 항상 diff와 같도록 만들 수 있는 가장 긴 등차 부분 수열의 길이를 구하는 것이 목표입니다.예를 들어 입력이 nums = [-1, 1, 4, 7, 2, 10], diff = 3이라면 출력은 4가 됩니다. 그 이유는 [1, 4, 7, 10]과 같은 부분 수열을 선택할 수 있고, 각 인접 원소의 차이가 모두 3으로 일정하기 때문입니다.문제 해결 접근 방식이 문제는 동적 계획법(DP)과 해시맵(딕셔너리)을 활용하면 O

  13. 파이썬으로 n의 이진수 표현에서 가장 긴 연속된 1 찾는 프로그램

    음이 아닌 정수 n이 주어졌을 때, 그 숫자의 이진수 표현에서 가장 긴 연속된 1의 길이를 구하는 문제입니다.문제 이해하기예를 들어 입력값이 n = 1469라고 해보겠습니다. 1469의 이진수 표현은 10110111101이며, 이 안에는 네 개가 연속된 1이 존재합니다. 따라서 출력 결과는 4가 됩니다.해결 접근 방법이 문제는 비트 AND 연산(&)과 왼쪽 시프트 연산(<<)을 활용하면 간단하게 해결할 수 있습니다. 알고리즘의 핵심 단계는 다음과 같습니다.카운터 변수 count를 0으로 초기화합니다.n이 0이 아닌 동안 다음

  14. 파이썬으로 고유한 요소의 가장 긴 연속 부분 리스트 길이 구하기

    문제 개요모든 요소가 고유(unique)한 숫자 리스트 nums가 주어졌을 때, 서로 연속된 값들로만 이루어진 가장 긴 부분 리스트(연속 하위 목록)의 길이를 찾는 것이 목표입니다.예를 들어, 입력이 nums = [3, 6, 7, 5, 4, 9]라고 한다면 출력은 5가 됩니다. 부분 리스트 [3, 6, 7, 5, 4]가 3부터 7까지의 모든 연속적인 값을 포함하고 있기 때문입니다.접근 방법이 문제의 핵심 아이디어는 다음과 같습니다. 어떤 구간 [i, j] 안에서 최댓값과 최솟값의 차이가 구간의 길이와 정확히 일치한다면, 그 구간의

  15. 파이썬으로 물음표(?)를 활용해 'a'로 시작하는 연속적으로 증가하는 최장 부분 문자열 길이 구하기

    문제 정의 영어 소문자 알파벳과 물음표(?)로 구성된 문자열 s가 주어졌다고 가정해 보겠습니다. 각 물음표는 제거하거나 임의의 소문자로 대체할 수 있습니다. 이때 문자 a로 시작하면서 알파벳 순서대로 연속적으로 증가하는 부분 문자열 중 가장 긴 것의 길이를 구해야 합니다. 예를 들어 입력 문자열이 s = vta???defke라면 정답은 6입니다. 물음표 세 개를 b, c, d로 바꾸면 문자열이 vtabcdefke가 되는데, 여기서 abcdef가 a로 시작하는 가장 긴 연속 증가 부분 문자열이기 때문입니다. 접근 방법 이 문제는 문

  16. Python으로 원소 하나를 제거한 후 가장 긴 연속 엄격 증가 부분 리스트의 길이 찾기

    숫자로 이루어진 리스트 nums가 주어졌을 때, 리스트에서 최대 한 개의 원소를 제거할 수 있다고 가정하고, 연속적이면서 엄격하게(엄밀히) 증가하는 부분 리스트의 최대 길이를 구하는 문제입니다.예를 들어 입력이 nums = [35, 5, 6, 7, 8, 9, 12, 11, 26]라면 출력은 7이 됩니다. 12를 제거하면 리스트는 [5, 6, 7, 8, 9, 11, 26]이 되어 길이 7짜리 연속적인 엄격 증가 부분 리스트가 만들어지며, 이것이 가능한 가장 긴 경우이기 때문입니다.문제 해결 접근 방식이 문제는 동적 계획법(DP)을 활

  17. 파이썬(Python)으로 이진 행렬에서 가장 긴 경로 길이 찾기

    문제 개요0은 빈 칸(empty cell), 1은 벽(wall)을 의미하는 이진 행렬(binary matrix)이 주어졌다고 가정해 봅시다. 우리는 첫 번째 행의 임의의 빈 칸에서 출발하여 마지막 행의 임의의 빈 칸에 도달해야 합니다. 이동은 왼쪽, 오른쪽, 아래 세 방향으로만 가능하며, 각 칸은 최대 한 번만 방문할 수 있습니다. 이 조건에서 가능한 가장 긴 경로의 길이를 구하고, 경로가 존재하지 않으면 0을 반환하면 됩니다.입력 예시000000010000위 행렬의 경우 정답은 10입니다. 예를 들어 다음 순서대로 이동하면 총 1

  18. Python으로 가장 긴 접두사 시퀀스의 길이 찾기

    문제 개요소문자로만 이루어진 문자열들의 리스트 w가 주어졌다고 가정해 보겠습니다. 이때 w에서 만들 수 있는 가장 긴 시퀀스의 길이를 구해야 합니다. 여기서 유효한 시퀀스란, 각 이전 단어가 다음 단어의 접두사(prefix)이면서, 다음 단어는 이전 단어에 새로운 문자를 정확히 하나만 추가한 형태여야 하는 시퀀스를 의미합니다.예를 들어 입력이 w = [pqr, pq, m, mn, pqrs]라고 해보겠습니다. 이 경우 출력은 3이 됩니다. 왜냐하면 [pq, pqr, pqrs]라는 시퀀스를 만들 수 있고, 각 단어가 조건을 만족하며 그

  19. Python으로 문자열에서 두 번 이상 반복되는 가장 긴 부분 문자열 찾는 방법

    문제 개요소문자로만 구성된 문자열 s가 주어졌을 때, 문자열 안에서 최소 두 번 이상 등장하는 가장 긴 부분 문자열의 길이를 구해야 합니다. 만약 두 번 이상 나타나는 부분 문자열이 존재하지 않는다면 0을 반환합니다.예를 들어 입력이 s = abdgoalputabdtypeabd라면 결과는 3입니다. 왜냐하면 두 번 이상 등장하는 가장 긴 부분 문자열이 바로 abd이고, 그 길이가 3이기 때문입니다.해결 전략: 접미사(Suffix) 비교 방식이 문제는 접미사 배열을 활용하면 효율적으로 해결할 수 있습니다. 핵심 아이디어는 다음과 같습

  20. 파이썬으로 '2×최솟값 > 최댓값' 조건을 만족하는 가장 긴 연속 부분 리스트 찾기

    숫자로 이루어진 리스트 nums가 주어졌을 때, 2 × (부분 리스트의 최솟값) > (부분 리스트의 최댓값) 조건을 만족하는 가장 긴 연속 부분 리스트(sublist)의 길이를 구하는 문제입니다.예를 들어 입력이 nums = [10, 2, 6, 6, 4, 4]라면 출력은 4가 됩니다. 그 이유는 부분 리스트 [6, 6, 4, 4]에서 최솟값은 4, 최댓값은 6이고, 2 × 4 = 8 > 6이므로 조건을 충족하며, 이보다 긴 구간 중 조건을 만족하는 것은 없기 때문입니다.접근 방법: 슬라이딩 윈도우 + 모노토닉 데크이 문제

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:397/450  20-컴퓨터/Page Goto:1 391 392 393 394 395 396 397 398 399 400 401 402 403