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

Python

  1. matplotlib 극좌표 플롯에 보조 눈금(Minor Ticks) 만드는 방법

    matplotlib에서 극좌표(polar) 플롯에 보조 눈금을 추가하려면 각도 방향으로 짧은 눈금 선을 직접 그려주는 방식을 사용할 수 있습니다. 아래 단계를 따라 구현해 보겠습니다.구현 단계그림(figure) 크기를 설정하고 서브플롯 주변의 여백을 조정합니다.numpy를 사용하여 반지름(r)과 각도(theta) 데이터를 생성합니다.현재 그림에 극좌표 투영(projection=polar) 방식의 서브플롯을 추가합니다.0도부터 360도까지 step=10 간격으로 점을 순회하면서 짧은 눈금 선을 그립니다.plt.show() 메서드로 결

  2. 파이썬으로 문자열 생성을 위한 최소 비용 계산하기

    길이가 n인 문자열 str을 만들어야 한다고 가정해 봅시다. 문자열을 구성하기 위해 다음 두 가지 연산을 사용할 수 있습니다. 문자 하나를 문자열 끝에 추가하는 연산 — 비용 a 부분 문자열(sub_str)을 문자열 끝에 추가하는 연산 — 비용 r 목표는 문자열 str을 완성하는 데 드는 최소 비용을 구하는 것입니다. 예시 입력: a = 5, r = 4, str = tpoint 출력: 29 비용 상세 내역 str = t ; 새 문자 추가 → 비용 5 str = tp ; 새 문자 추가 → 비용 5 str = tpo

  3. Matplotlib에서 입력 이미지를 읽어 NumPy 배열로 출력하는 방법

    이미지 처리 작업을 할 때 이미지를 NumPy 배열 형태로 다뤄야 하는 경우가 많습니다. Matplotlib의 imread() 함수를 사용하면 이미지 파일을 손쉽게 읽어 배열로 변환하고, 화면에 시각화할 수 있습니다.처리 순서그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 자동으로 조정합니다.plt.imread() 메서드를 사용하여 파일에서 이미지를 읽어 NumPy 배열로 변환합니다.읽어온 이미지의 NumPy 배열을 콘솔에 출력합니다.axis(off) 메서드를 사용하여 축(axis)을 숨깁니다.

  4. Matplotlib에서 마우스 클릭 시 해당 지점의 좌표를 표시하는 방법

    Matplotlib에서는 button_press_event 이벤트를 활용하면 플롯 위에서 마우스를 클릭한 지점의 x, y 좌표를 손쉽게 확인할 수 있습니다. 아래 단계별 예제를 통해 구현 방법을 살펴보겠습니다.구현 단계그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백을 자동으로 조정합니다.새 그림을 생성하거나 기존 그림을 활성화합니다.mouse_event 함수를 button_press_event 이벤트에 연결하여 마우스 클릭을 감지합니다.numpy를 사용해 x축과 y축 데이터 포인트를 생성합니다.plot() 메서드를

  5. 파이썬에서 올바른 순열이 될 수 있는 순열 번호의 합을 구하는 프로그램

    양의 정수 1부터 n까지를 한 번씩 사용해 만들 수 있는 모든 순열을 생각해 봅시다. 이 순열들을 사전순(lexicographic order)으로 정렬한 뒤 1번부터 차례대로 번호를 매깁니다. 그중 하나의 순열을 특별한 순열이라고 하는데, 이 순열의 일부 값이 지워져서 0으로 대체되었다고 가정합니다. 우리가 해야 할 일은 0으로 가려진 자리를 채워 원래 순열이 될 수 있는 모든 후보 순열을 찾고, 각 후보의 번호를 모두 더한 합을 구하는 것입니다. 예를 들어 특별한 순열이 [0, 2, 0]이고 n = 3이라면 결과는 7이 됩니다.

  6. Python Matplotlib 대화형 플롯에서 마우스 클릭 좌표(x, y) 얻는 방법

    대화형 Matplotlib 플롯에서 마우스로 클릭한 지점의 (x, y) 좌표를 확인하려면 Matplotlib의 이벤트 핸들링 기능을 활용하면 됩니다. 아래 단계를 따라 간단하게 구현할 수 있습니다. 구현 단계 그림(figure) 크기를 설정하고 서브플롯 주변의 여백을 자동으로 조정합니다. plt.figure()로 새 그림을 생성하거나 기존 그림을 활성화합니다. mpl_connect() 메서드를 사용해 mouse_event 함수를 button_press_event 이벤트에 연결합니다. numpy를 사용하여 x, y 데이터 포인트를

  7. Matplotlib plt.figure()와 plt.subplots()의 차이점 완벽 정리

    Matplotlib에서 그래프를 그릴 때 가장 먼저 마주하게 되는 두 함수가 바로 plt.figure()와 plt.subplots()입니다. 두 함수 모두 Figure(그림 영역)를 생성하지만, 반환하는 값과 활용 방식에 중요한 차이가 있습니다. plt.figure() — 새로운 Figure를 생성하거나, 이미 존재하는 Figure를 활성화합니다. 이 함수는 Figure 객체 자체만 반환합니다. plt.subplots() — 하나의 Figure와 서브플롯(Axes) 집합을 동시에 생성합니다. Figure와 Axes를 한 번에 얻을

  8. Matplotlib로 윤곽선(Contour) 애니메이션 만드는 방법

    Matplotlib에서는 matplotlib.animation 모듈의 FuncAnimation 클래스를 활용하면 윤곽선(Contour) 그래프를 부드럽게 움직이는 애니메이션을 손쉽게 만들 수 있습니다.구현 단계그림 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.윤곽선 플롯에 사용할 데이터를 생성합니다.Figure와 서브플롯(Axes) 집합을 생성합니다.FuncAnimation으로 animate 함수를 반복 호출하여 애니메이션을 생성합니다. 이때 animate() 함수가 프레임마다 윤곽선 데이터 포인트를 변

  9. Matplotlib 극좌표 플롯에서 선을 곡선 형태로 그리는 방법

    Matplotlib의 극좌표(polar) 플롯에서 선이나 곡선을 자연스럽게 구부려 그리고 싶다면, 각도(degree)를 라디안(radian)으로 변환하고 보간(interpolation) 기법을 활용하면 됩니다. 아래에서 단계별로 살펴보겠습니다.구현 단계그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조정합니다.새로운 figure를 생성하거나 기존 figure를 활성화합니다.서브플롯 배치의 일부로 ax(극좌표 축)를 figure에 추가합니다.특정 각도에 대해 color=green, linewidth

  10. 파이썬으로 사전 순으로 연결한 문자열에서 특정 인덱스의 문자 찾기

    문자열 input_str이 주어졌다고 가정해 보겠습니다. 우리가 해야 할 일은 이 문자열에서 만들 수 있는 모든 부분 문자열을 구한 뒤, 이를 사전 순(lexicographical order)으로 하나씩 이어 붙여 새로운 문자열을 만드는 것입니다. 그리고 정수 값 k가 함께 주어지며, 최종적으로 연결된 문자열에서 인덱스 k에 해당하는 문자를 반환해야 합니다.예를 들어 입력이 input_str = pqrs, k = 6이라면 출력 결과는 p가 됩니다.주어진 문자열의 부분 문자열을 사전 순으로 나열하면 다음과 같습니다.p, pq, pqr

  11. 파이썬으로 문자열과 모든 접미사 간 유사도의 합 구하기

    문자열 input_str이 주어졌다고 가정해 보겠습니다. 이 문자열로부터 만들 수 있는 모든 접미사(suffix)를 구한 뒤, 원래 문자열과 각 접미사 사이의 유사도를 계산하는 것이 이번 문제입니다. 여기서 유사도란 원래 문자열과 해당 접미사가 공유하는 가장 긴 공통 접두사(longest common prefix)의 길이로 정의되며, 최종적으로는 모든 접미사와의 유사도 합을 반환해야 합니다. 예를 들어 입력이 input_str = tpotp라면 출력은 7이 됩니다. tpotp에서 만들 수 있는 모든 접미사는 tpotp, potp,

  12. 파이썬으로 숫자 집합의 부분 합 제곱 최댓값 구하기 – 각도 정렬과 그리디 탐색

    문제 이해하기 nums1과 nums2라는 두 개의 배열이 주어지고, 두 배열은 모두 같은 개수의 원소 N개를 가지고 있다고 가정해 보겠습니다. 이제 1부터 N까지의 자연수로 이루어진 집합 S를 생각해 봅니다. 우리가 구해야 하는 값은 다음 식의 최댓값입니다. (nums1[i1] + nums1[i2] + … + nums1[ik])² + (nums2[i1] + nums2[i2] + … + nums2[ik])² 여기서 {i1, i2, …, ik}는 집합 S의 공집합이 아닌 임의의 부분 집합입니다. 즉, 인덱스를 어떻게 선택하느냐에 따라

  13. 파이썬으로 다른 문자열과 완전히 일치하거나 한 위치만 다른 부분 문자열의 시작 인덱스 찾기

    문제 소개 두 개의 문자열이 주어졌다고 가정해 보겠습니다. 첫 번째 문자열의 길이는 두 번째 문자열보다 깁니다. 우리가 해야 할 일은 첫 번째 문자열에서 잘라낸 부분 문자열이 두 번째 문자열과 완전히 일치하는지, 아니면 단 한 위치만 다른지를 검사하고, 그러한 부분 문자열이 시작되는 인덱스를 모두 찾아내는 것입니다. 예를 들어 입력이 다음과 같다면: string1 = tpoint, string2 = pi 출력은 1 2가 됩니다. 그 이유를 살펴보면, 인덱스 1에서 시작하는 부분 문자열 po는 pi와 두 번째 글자만 다르고, 인덱스

  14. 파이썬으로 색칠된 정다각형에서 같은 색 이등변 삼각형 개수 구하기

    문제 설명변의 개수가 n개인 정다각형이 하나 주어지며, 이 다각형은 길이 n의 이진(binary) 문자열로 표현됩니다. 각 정점은 파란색(0) 또는 빨간색(1)으로 칠해져 있고, 색상 정보는 시계 방향 순서로 나열되어 있습니다. 이때 정다각형의 정점들만을 꼭짓점으로 사용하면서, 세 꼭짓점의 색이 모두 같은 이등변 삼각형의 개수를 구하는 것이 목표입니다.예를 들어 입력이 polygon = 111010이라면 결과는 2가 됩니다.그림에서 확인할 수 있듯이 조건을 만족하는 삼각형은 ACE와 AFE, 총 두 개입니다.풀이 접근 방법이 문제는

  15. 파이썬으로 주어진 문자열들의 모든 부분 문자열 집합에서 특정 위치의 부분 문자열 찾기

    문제 이해하기 n개의 문자열 str1, str2, str3, ..., strn이 주어져 있다고 가정해 보겠습니다. 여기서 substri는 stri가 가질 수 있는 모든 부분 문자열(substring)을 담고 있는 집합입니다. 이 모든 집합의 합집합을 substr_union이라고 정의할 때, 총 q개의 질의(query)가 주어지며, 각 질의에 대해 사전순(lexicographically)으로 정렬된 substr_union에서 해당 인덱스(1부터 시작)의 원소를 찾아야 합니다. 예를 들어, 문자열 리스트가 [pqr, pqt]이고 질의

  16. Python으로 표현식 결과의 최대 빈도 기댓값 구하는 프로그램

    M개의 서로 다른 표현식이 있고, 각 표현식의 답은 1부터 N까지(양 끝값 포함) 범위 안에 있다고 가정해 보겠습니다. 이때 1부터 N까지 각 숫자 i의 발생 빈도를 f(i)라 하고, x = max(f(i))로 정의하면, 우리가 구해야 하는 것은 바로 이 x의 기댓값(expected value)입니다. 예를 들어 입력이 M = 3, N = 3이라면 출력은 2.2가 됩니다. 가능한 모든 시퀀스와 각 시퀀스에서 가장 자주 등장한 숫자의 빈도(최대 빈도)는 아래 표와 같습니다. 시퀀스최대 빈도111311221132122212311331

  17. 파이썬으로 문자열의 회문 경계(Palindrome Border) 합 구하기

    문제 설명문자열 str이 주어졌다고 가정해 봅시다. 문자열의 경계(border)란 해당 문자열의 진접두사(proper prefix)이면서 동시에 접미사(suffix)가 되는 부분 문자열을 의미합니다. 예를 들어 ab는 문자열 ababab의 경계입니다. 이러한 경계가 회문(palindrome)이라면 이를 회문 경계(palindrome border)라고 부릅니다.주어진 문자열 str의 회문 경계 개수를 f(str)이라고 할 때, str의 모든 비어 있지 않은 부분 문자열 str_k에 대해 f(str_k)의 총합을 구하는 것이 목표입니다

  18. 파이썬(Python)으로 준우승 점수 찾기 — 두 번째로 높은 점수 구하는 프로그램

    여러 참가자의 점수가 담긴 리스트가 주어졌을 때, 그중 준우승(두 번째로 높은) 점수를 찾아야 하는 문제입니다.예를 들어 입력이 scores = [5,8,2,6,8,5,8,7]이라면 출력은 7입니다. 최고 점수(우승 점수)는 8이고, 그다음으로 큰 점수는 7이기 때문입니다.해결 방법이 문제는 다음과 같은 단계를 따라 해결할 수 있습니다.변수 winner(최고 점수)를 -99999로 초기화합니다.변수 runner_up(준우승 점수)도 -99999로 초기화합니다.scores 리스트의 각 요소 i에 대해 다음을 반복합니다.i가 winne

  19. 파이썬으로 중첩 리스트에서 두 번째로 낮은 점수를 받은 학생 이름 모두 출력하기

    중첩 리스트에 학생들의 이름과 성적이 저장되어 있을 때, 두 번째로 낮은 점수를 받은 학생의 이름을 모두 출력하는 문제를 생각해 봅시다. 만약 두 번째로 낮은 점수를 받은 학생이 여러 명이라면, 이름을 알파벳 순으로 정렬한 뒤 한 줄에 하나씩 출력해야 합니다.문제 이해예를 들어 입력이 다음과 같다고 가정해 보겠습니다.students = [[Amal,37],[Bimal,37],[Tarun,36],[Akash,41],[Himadri,39]]이 경우 최저 점수는 Tarun의 36점이고, 두 번째로 낮은 점수는 Amal과 Bimal의 37

  20. Python으로 배열 연산 후 부분 배열 합의 기댓값 구하는 프로그램

    문제 소개 크기가 n인 배열 A와 두 정수 p, q가 주어져 있다고 가정해 보겠습니다. 우리는 배열 A에 대해 다음 두 가지 연산을 수행할 수 있습니다. l < r을 만족하는 두 인덱스 (l, r)를 무작위로 선택한 뒤 A[l]과 A[r]의 값을 서로 교환(swap)합니다. l < r을 만족하는 두 인덱스 (l, r)를 무작위로 선택한 뒤 인덱스 l부터 r까지의 부분 배열을 뒤집습니다(reverse). 첫 번째 연산을 p회, 두 번째 연산을 q회 수행한 후, l < r을 만족하는 두 인덱스 l과 r을 다시 무작

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:371/450  20-컴퓨터/Page Goto:1 365 366 367 368 369 370 371 372 373 374 375 376 377