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

Python

  1. Python에서 서로 다른 세 요소의 최대 곱을 구하는 프로그램

    숫자로 이루어진 리스트 nums가 주어졌을 때, 서로 다른 세 요소를 곱하여 만들 수 있는 가장 큰 값을 찾는 문제입니다.예를 들어 입력이 nums = [6, 1, 2, 4, -3, -4]라면 출력은 72가 됩니다. 음수끼리 곱하면 양수가 되기 때문에 (-3) × (-4) × 6 = 72라는 결과를 얻을 수 있습니다.해결 접근 방법이 문제는 리스트를 한 번 정렬한 뒤, 가능한 두 가지 후보 조합만 비교하면 효율적으로 해결할 수 있습니다.리스트 nums를 오름차순으로 정렬합니다.n을 nums의 길이로 설정합니다.maxScore를 매우

  2. Python으로 리스트에서 서로 다른 두 요소의 최대 곱 구하기

    숫자로 이루어진 리스트 nums가 주어졌을 때, 서로 다른 두 요소를 곱했을 때 나올 수 있는 최댓값을 구하는 문제입니다.예를 들어 입력이 nums = [8, -3, 1, -5]라면 출력은 15가 됩니다. 음수끼리 곱하면 양수가 되므로 (-3) × (-5) = 15가 이 경우의 최댓값입니다.해결 접근 방법핵심 아이디어는 간단합니다. 최대 곱은 다음 두 가지 경우 중 하나에서 나올 수 있습니다.리스트에서 가장 큰 두 수의 곱리스트에서 가장 작은 두 수(음수)의 곱 — 둘 다 음수라면 곱한 결과가 큰 양수가 될 수 있음따라서 다음 단계

  3. Python으로 숫자의 임의 위치에 5를 삽입해 만들 수 있는 최댓값 구하기

    숫자 n이 주어졌을 때, 이 숫자의 임의의 위치에 5를 한 번 삽입하여 얻을 수 있는 최댓값을 찾는 문제입니다.예를 들어 입력이 n = 834라면, 5를 두 번째 자리 앞에 삽입한 8534가 가장 큰 수이므로 출력은 8534가 됩니다.해결 접근 방법이 문제는 그리디(Greedy) 방식으로 효율적으로 해결할 수 있습니다. 핵심 아이디어는 숫자의 부호에 따라 5를 삽입할 최적의 위치가 달라진다는 점입니다.양수인 경우: 왼쪽부터 탐색하면서 처음으로 5보다 작은 숫자 앞에 5를 삽입하면 값이 가장 커집니다. 만약 그런 숫자가 없다면(모든

  4. Python으로 길이 K인 부분 리스트를 제거한 후 최소 진폭 구하기

    문제 개요숫자로 이루어진 리스트 nums와 값 k가 주어졌다고 가정해 보겠습니다. 먼저 길이가 k인 부분 리스트(sublist)를 하나 제거한 뒤, 남은 원소들의 최댓값에서 최솟값을 뺀 값, 즉 진폭(amplitude)이 최소가 되도록 만드는 것이 목표입니다.예를 들어 입력이 nums = [2, 3, 10, 9, 8, 4], k = 3이라면 결과는 2가 됩니다. 가운데의 [10, 9, 8]을 제거하면 [2, 3, 4]만 남고, 최댓값 4에서 최솟값 2를 빼면 2가 되기 때문입니다.해결 접근 방법모든 제거 위치마다 최댓값과 최솟값을

  5. 파이썬(Python)으로 k개 요소 제거 후 최소 진폭 구하는 방법

    문제 개요숫자 리스트 nums와 정수 k가 주어졌을 때, nums에서 k개의 요소를 제거한 뒤 남은 숫자들의 (최댓값 − 최솟값), 즉 진폭(amplitude)이 최소가 되도록 만드는 문제입니다.예를 들어 입력이 nums = [4, 10, 3, 2, 8, 9], k = 3이라면 출력은 2가 됩니다. 10, 8, 9를 제거하면 남은 숫자는 [4, 3, 2]이며, 이때 최댓값은 4, 최솟값은 2이므로 차이는 2가 됩니다.해결 접근 방법이 문제는 정렬과 슬라이딩 윈도우 기법을 활용하면 효율적으로 해결할 수 있습니다. 핵심 아이디어는 다음

  6. 파이썬으로 텍스트 내 두 단어 사이의 최소 거리 찾는 프로그램

    문제 개요세 개의 문자열 text, w1, w2가 주어졌다고 가정해 봅시다. text는 여러 단어로 이루어진 문장입니다. 우리가 구해야 할 것은 text 안에서 w1과 w2가 등장하는 모든 위치 조합 중 가장 짧은 거리이며, 거리는 두 단어 사이에 끼어 있는 단어의 개수로 측정합니다. 만약 w1 또는 w2가 text에 존재하지 않는다면 -1을 반환해야 합니다.예를 들어 입력이 다음과 같다고 해보겠습니다.text = joy happy power happy joy joy power happy limitw1 = powerw2 = limi

  7. Python – 모든 접두사 합이 양수가 되도록 리스트 앞에 삽입할 최솟값 구하기

    숫자로 이루어진 리스트 nums가 주어졌을 때, 이 리스트의 맨 앞에 삽입하여 결과 리스트의 모든 접두사 합(prefix sum)이 0보다 크도록 만드는 최소 양수 값을 구하는 문제입니다.예를 들어 입력이 nums = [3, -6, 4, 3]이라면 출력은 4가 됩니다. 4를 삽입하면 리스트는 [4, 3, -6, 4, 3]이 되고, 접두사 합은 [4, 7, 1, 5, 8]로 모든 값이 0보다 크기 때문입니다.문제 해결 접근 방법이 문제는 다음 단계를 따라 해결할 수 있습니다.nums의 맨 앞(인덱스 0)에 0을 삽입합니다.인덱스 1부

  8. 파이썬으로 단조 증가·감소 문자열 분할의 최소 그룹 개수 구하기

    문제 이해하기소문자로만 이루어진 문자열 s가 주어졌을 때, s를 연속된 부분 문자열들로 나누려고 합니다. 이때 각 부분 문자열은 단조 증가(non-decreasing) 또는 단조 감소(non-increasing) 상태여야 하며, 필요한 최소한의 부분 문자열 개수를 구하는 것이 목표입니다.예를 들어 pqqqr은 단조 증가 문자열이고, qqqp는 단조 감소 문자열입니다.입출력 예시s = pqrsrqp인 경우 출력은 2가 됩니다. 문자열을 pqrs(단조 증가)와 rqp(단조 감소)라는 두 조각으로 나눌 수 있기 때문입니다.해결 접근 방법

  9. 파이썬으로 팔로우 관계 목록에서 상호 팔로우(맞팔) 사용자 찾기

    소셜 미디어 플랫폼에서 사람들 간의 팔로우 관계를 담고 있는 relations라는 리스트가 있다고 가정해 보겠습니다. 각 요소 relations[i]는 두 개의 숫자 [ai, bi]로 구성되며, 이는 사용자 ai가 사용자 bi를 팔로우하고 있음을 의미합니다. 우리의 목표는 서로를 맞팔로우(상호 팔로우)하는 사용자들을 모두 찾아, 정렬된 형태의 리스트로 반환하는 것입니다. 예를 들어, 입력이 relations = [[0, 2], [2, 3], [2, 0], [1, 0]]이라면, 0번 사용자와 2번 사용자가 서로를 팔로우하고 있으므로

  10. Python으로 문자열이 소문자 기준 회문인지 확인하는 프로그램

    문제 개요영숫자(alphanumeric)로 구성된 문자열 s가 있다고 가정해 보겠습니다. 이 문자열에는 대문자와 소문자가 섞여 있을 수 있으며, 숫자도 포함될 수 있습니다. 우리가 해야 할 일은 소문자 알파벳만 추출했을 때 해당 문자열이 회문(palindrome)인지 확인하는 것입니다.예를 들어, 입력이 s = rLacHEec0a2r8이라면 출력은 True가 됩니다. 이 문자열에서 소문자만 모으면 racecar가 되는데, 이는 앞에서 읽어도 뒤에서 읽어도 같은 회문이기 때문입니다.해결 접근 방법이 문제는 다음 단계를 따라 간단히 해

  11. 파이썬으로 숫자 쌍과 삼중 그룹으로 나눌 수 있는지 확인하는 프로그램

    숫자로만 이루어진 문자열 s가 주어졌다고 가정해 봅시다. 이때 동일한 문자 두 개로 이루어진 쌍(pair)을 하나 만들고, 나머지 문자들은 모두 같은 문자 세 개씩 묶인 삼중 그룹(triplet)으로 구성할 수 있는 배치가 존재하는지 확인해야 합니다.문제 이해하기예를 들어 입력이 s = 21133123이라면 출력은 True가 됩니다. 숫자 2가 정확히 두 개 있어 22라는 쌍을 만들 수 있고, 남은 문자들은 111과 333이라는 두 개의 삼중 그룹으로 깔끔하게 나눌 수 있기 때문입니다.핵심 아이디어는 다음과 같습니다. 어떤 문자든

  12. 파이썬으로 합이 2의 거듭제곱이 되는 인덱스 쌍 개수 구하는 프로그램

    문제 개요숫자로 이루어진 리스트 nums가 주어졌다고 가정해 봅시다. 이때 인덱스 쌍 (i, j) 중에서 i < j를 만족하고, nums[i] + nums[j]의 값이 어떤 정수 k ≥ 0에 대해 2^k(2의 거듭제곱)가 되는 쌍의 개수를 구하는 것이 목표입니다.예를 들어 입력이 nums = [1, 2, 6, 3, 5]라면 출력은 3이 됩니다. 조건을 만족하는 세 가지 쌍은 다음과 같습니다.(6, 2): 합이 8 (= 2³)(5, 3): 합이 8 (= 2³)(1, 3): 합이 4 (= 2²)풀이 접근 방법모든 쌍을 일일이 확인

  13. 파이썬에서 문자열 변환 없이 정수가 회문인지 확인하는 프로그램

    음이 아닌 정수 num이 주어졌을 때, 이 숫자가 회문(palindrome)인지 아닌지 판별하는 문제입니다. 여기서 회문이란 앞에서부터 읽으나 뒤에서부터 읽으나 같은 숫자를 의미합니다. 단, 이 문제는 문자열로 변환하지 않고 오직 산술 연산만으로 풀어야 한다는 조건이 있습니다. 예를 들어 입력값이 num = 25352라면, 이 숫자는 뒤집어도 25352 그대로이므로 출력 결과는 True가 됩니다. 문제 해결 접근 방법 핵심 아이디어는 나눗셈 연산으로 숫자의 각 자릿수를 추출하여 역순으로 재조립한 뒤, 원래 숫자와 비교하는 것입니다.

  14. Python Pandas – 열린 끝점을 공유하는 두 Interval 객체의 겹침 여부 확인하기

    두 Interval 객체가 열린 끝점(open endpoint)을 공유할 때 서로 겹치는지 확인하려면 overlaps() 메서드를 사용합니다.필수 라이브러리 가져오기먼저 필요한 라이브러리를 임포트합니다.import pandas as pdInterval 객체의 겹침 규칙두 구간(interval)은 닫힌 끝점(closed endpoint)을 포함하여 공통 지점을 공유할 때 겹치는 것으로 간주됩니다. 반면, 오직 열린 끝점만 공유하는 경우에는 겹치지 않는 것으로 판단합니다.Interval 객체 생성두 개의 Interval 객체를 생성해

  15. Python Pandas – Interval 객체에서 오른쪽 경계(right) 값 구하기

    Pandas의 Interval 객체에서 오른쪽 경계(상한값)를 확인하려면 interval.right 속성을 사용하면 됩니다. 이 속성은 구간이 닫혀 있는지(closed) 여부와 관계없이 항상 상한 경계 값을 그대로 반환합니다.먼저 필요한 라이브러리를 임포트합니다.import pandas as pd시간 간격(Time Interval) 생성하기타임스탬프(Timestamp)를 경계값으로 사용하여 시간 간격을 만들어 보겠습니다. closed 매개변수를 left로 설정하면 왼쪽 경계는 포함되고 오른쪽 경계는 제외되는 반열린 구간이 생성됩니다

  16. Python – Pandas로 구간(Interval) 데이터 배열 만들기

    구간(interval) 데이터를 다루는 Pandas 배열을 만들려면 pandas.arrays.IntervalArray() 메서드를 사용하면 됩니다. 이 메서드는 여러 개의 pd.Interval 객체를 하나의 배열 구조로 묶어주며, 구간 데이터의 길이 계산이나 벡터화 연산에 유용하게 활용됩니다.1. 필요한 라이브러리 임포트먼저 필요한 라이브러리를 임포트합니다.import pandas as pd2. Interval 객체 생성두 개의 Interval 객체를 만들어 보겠습니다.interval1 = pd.Interval(10, 30) int

  17. Pandas IntervalArray에서 각 구간(Interval)의 왼쪽 끝점을 인덱스로 가져오는 방법

    Pandas의 IntervalArray에서 각 구간(Interval)의 왼쪽 끝점을 Index 형태로 반환하려면 array.left 속성을 사용하면 됩니다. 이 속성은 IntervalArray에 포함된 모든 구간의 시작 지점(왼쪽 경계값)을 모아 하나의 Index 객체로 만들어 반환합니다.필수 라이브러리 임포트먼저 필요한 라이브러리를 임포트합니다.import pandas as pdInterval 객체 생성두 개의 Interval 객체를 생성합니다. Interval은 시작값과 끝값을 지정하여 만들 수 있으며, 기본적으로 왼쪽은 열려

  18. Python Pandas – IntervalArray에서 각 구간(Interval)의 오른쪽 끝점을 Index로 반환하는 방법

    IntervalArray에 포함된 각 구간(Interval)의 오른쪽 끝점(right endpoint)을 Index 형태로 반환하려면 array.right 속성을 사용하면 됩니다. 기본 사용법 먼저 필요한 라이브러리를 임포트합니다. import pandas as pd 두 개의 Interval 객체를 생성합니다. interval1 = pd.Interval(10, 25) interval2 = pd.Interval(15, 70) 생성된 구간을 화면에 출력해 확인합니다. print(Interval1...\n, interval1) print

  19. Python Pandas – IntervalArray의 구간이 왼쪽, 오른쪽, 양쪽 또는 어느 쪽도 닫혀 있지 않은지 확인하는 방법

    IntervalArray에 담긴 구간(Interval)이 왼쪽, 오른쪽, 양쪽 모두, 혹은 어느 쪽도 닫혀 있지 않은지 확인하려면 array.closed 속성을 사용하면 됩니다. 이 속성은 구간의 닫힘 상태를 나타내는 값을 반환하며, 반환될 수 있는 값은 left(왼쪽만 닫힘), right(오른쪽만 닫힘), both(양쪽 모두 닫힘), neither(어느 쪽도 닫히지 않음) 네 가지입니다. 라이브러리 불러오기 먼저 필요한 라이브러리를 임포트합니다. import pandas as pd Interval 객체 생성하기 closed 매개변

  20. Python Pandas - IntervalArray에서 각 구간(Interval)의 중간값을 인덱스(Index)로 반환하기

    IntervalArray에 포함된 각 구간(Interval)의 중간값(midpoint)을 인덱스 형태로 반환하려면 array.mid 속성을 사용하면 됩니다. 이 속성은 배열 내 모든 구간의 중간 지점을 계산하여 새로운 인덱스 객체로 돌려주므로, 구간 데이터를 다룰 때 매우 유용합니다. 필요한 라이브러리 불러오기 먼저 필요한 라이브러리를 임포트합니다. import pandas as pd 구간(Interval) 객체 생성 이제 두 개의 Interval 객체를 생성합니다. 이때 closed 매개변수를 both로 설정하면 양쪽 끝점을 모두

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:376/450  20-컴퓨터/Page Goto:1 370 371 372 373 374 375 376 377 378 379 380 381 382