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

Python

  1. Matplotlib에서 여러 개의 컬러바(Colorbar)를 표시하는 방법

    개요데이터 시각화 작업을 하다 보면 서로 다른 데이터셋을 각각의 컬러바와 함께 한 화면에 비교해야 하는 경우가 자주 있습니다. Matplotlib에서는 imshow()와 colorbar()를 조합하면 여러 개의 컬러바를 손쉽게 표시할 수 있습니다.구현 단계그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.하나의 figure 객체와 서브플롯(subplots) 집합을 생성합니다.샘플 데이터의 개수를 지정할 변수 N을 초기화합니다.NumPy를 사용하여 무작위 데이터 data1을 생성합니다.d

  2. Python으로 연결 리스트에서 m개 노드 유지 후 다음 n개 노드 삭제하기

    시작 노드가 head인 연결 리스트(Linked List)와 두 개의 정수 m, n이 주어졌다고 가정해 보겠습니다. 우리는 리스트를 끝까지 순회하면서 처음 m개의 노드는 유지하고, 그 직후에 이어지는 n개의 노드는 삭제하는 작업을 반복해야 합니다. 이 과정은 연결 리스트의 끝에 도달할 때까지 계속되며, 최종적으로 수정된 연결 리스트를 반환하면 됩니다.연결 리스트의 노드 구조는 다음과 같이 정의됩니다.Node value : <정수> next : <다음 노드를 가리키는 포인터>예를 들어, 입력이 el

  3. Python으로 특별 할인이 적용된 상점 상품의 최종 가격 계산하기

    문제 설명prices라는 배열이 있고, prices[i]는 상점에서 i번째 상품의 가격을 나타낸다고 가정해 봅시다. 이 상점에서는 특별 할인 행사를 진행 중입니다. i번째 상품을 구매하면, j가 i보다 크면서 prices[j] <= prices[i]를 만족하는 최소 인덱스일 때 prices[j]만큼 할인을 받게 됩니다. 만약 그런 조건을 만족하는 j가 존재하지 않는다면 할인 없이 정가를 그대로 지불해야 합니다. 우리의 목표는 각 상품에 대해 특별 할인이 적용된 후 실제로 지불하게 될 최종 가격을 담은 배열을 구하는 것입니다.예

  4. Python으로 1차원 배열의 누적 합(Running Sum) 구하기

    배열 nums가 주어졌을 때, 누적 합(running sum) 배열 rs의 i번째 값 rs[i]는 nums[0]부터 nums[i]까지의 모든 원소를 더한 값입니다. 즉, 앞에서부터 차례대로 값을 누적해 나간 결과 배열을 반환하는 것이 목표입니다.누적 합의 개념예를 들어 입력이 nums = [8,3,6,2,1,4,5]라면, 출력은 [8, 11, 17, 19, 20, 24, 29]가 됩니다. 그 이유는 다음과 같습니다.rs[0] = nums[0] = 8 rs[1] = nums[0..1]의 합 = 8 + 3 = 11 rs[2] = num

  5. Python으로 배열 요소 전체의 XOR 연산 수행하기

    ```html 정수 n과 또 다른 정수 start가 주어졌다고 가정해 봅시다. 이때 nums라는 배열을 만들어야 하는데, 각 요소는 nums[i] = start + 2*i(i는 0부터 시작)라는 규칙을 따르며, 배열의 크기는 n입니다. 그다음 nums 배열의 모든 요소에 대해 비트 단위 XOR 연산을 수행한 결과를 구하면 됩니다. 예를 들어 입력이 n = 6, start = 2라면, 배열은 [2+2*0, 2+2*1, ..., 2+2*5], 즉 [2, 4, 6, 8, 10, 12]가 됩니다. 이 배열의 모든 요소를 차례대로 XOR하

  6. 파이썬으로 최저·최고 급여를 제외한 평균 급여 계산하기

    서로 다른 값들로 이루어진 배열 salary가 있다고 가정해 봅시다. 여기서 salary[i]는 i번째 직원의 급여를 의미합니다. 이때 최저 급여와 최고 급여를 제외한 나머지 직원들의 평균 급여를 구하는 것이 우리의 과제입니다.예를 들어 입력이 salary = [8000, 6000, 2000, 8500, 2500, 4000]이라면 출력은 5125.0이 됩니다. 최솟값은 2000, 최댓값은 8500이므로 이 두 값을 제외한 [8000, 6000, 2500, 4000]의 평균을 구하면 (8000 + 6000 + 2500 + 4000)

  7. 파이썬으로 시퀀스가 등차수열(AP)인지 확인하는 프로그램

    숫자 리스트 nums가 주어졌을 때, 이 리스트의 요소들이 등차수열(Arithmetic Progression, AP)을 이루는지 확인해야 합니다. 등차수열이란 인접한 두 요소 사이의 공차(공통 차이)가 항상 일정한 수열을 의미합니다.예를 들어 입력이 nums = [9, 1, 17, 5, 13]이라면 출력은 True입니다. 요소들을 정렬하면 [1, 5, 9, 13, 17]이 되고, 각 인접한 두 요소의 차이가 모두 4로 동일하기 때문입니다.풀이 접근 방법이 문제는 다음 단계로 해결할 수 있습니다.리스트 nums를 오름차순으로 정렬합니

  8. Python으로 영문 날짜 문자열을 YYYY-MM-DD 형식으로 변환하는 프로그램

    프로그래밍을 하다 보면 다양한 형식의 날짜 문자열을 표준 형식으로 변환해야 하는 경우가 자주 있습니다. 이번 글에서는 Day Month Year(일 월 년) 형식으로 작성된 영문 날짜 문자열을 YYYY-MM-DD 형식으로 변환하는 Python 프로그램을 만들어 보겠습니다.문제 정의입력으로 주어지는 날짜 문자열은 다음과 같은 조건을 가집니다.일(Day): 1st, 2nd, ..., 30th, 31st처럼 서수 접미사가 붙은 형태월(Month): Jan, Feb, ..., Nov, Dec처럼 영문 약어 형태연도(Year): 1900부터

  9. 파이썬으로 '좋은 쌍(Good Pair)'의 개수 구하는 프로그램

    문제 설명배열 nums가 주어졌을 때, nums[i]와 nums[j]의 값이 같으면서 i < j를 만족하는 인덱스 쌍 (i, j)를 좋은 쌍(good pair)이라고 정의합니다. 우리가 구해야 할 것은 이러한 좋은 쌍의 총 개수입니다.예를 들어 입력이 nums = [5,6,7,5,5,7]이라면, 조건을 만족하는 쌍은 인덱스 기준으로 (0, 3), (0, 4), (3, 4), (2, 5)로 총 4개이므로 출력 결과는 4가 됩니다.해결 접근 방법가장 직관적인 방법은 모든 가능한 인덱스 쌍을 확인하는 브루트포스(완전 탐색) 방식입니

  10. 파이썬으로 마실 수 있는 물병의 최대 개수 구하기

    가득 찬 물병이 n개 있다고 가정해 봅시다. 빈 물병 m개를 내놓으면 가득 찬 물병 한 개로 교환할 수 있으며, 가득 찬 물병을 마시면 다시 빈 병이 됩니다. 이 문제의 목표는 총 마실 수 있는 물병의 최대 개수를 구하는 것입니다.예를 들어 입력이 n = 9, m = 3이라면 출력은 13이 됩니다. 처음에 물병 9개가 있으므로 전부 마신 뒤 빈 병 9개로 9 ÷ 3 = 3개의 새 물병을 얻을 수 있습니다. 이 3개 역시 모두 마시면 빈 병 3개가 생기고, 이를 다시 교환하면 물병 1개를 추가로 마실 수 있습니다. 따라서 총 9 +

  11. 파이썬으로 구간 범위 내 홀수 개수 세는 프로그램 만들기

    두 개의 음이 아닌 정수 left와 right가 주어졌을 때, left부터 right까지(양쪽 경계값 포함) 범위 안에 있는 홀수의 개수를 구하는 문제입니다.문제 이해하기예를 들어 left = 3, right = 15라고 입력하면 출력은 7이 됩니다. 해당 구간의 홀수는 [3, 5, 7, 9, 11, 13, 15]로 총 7개이기 때문입니다.풀이 접근 방법모든 숫자를 하나씩 확인하는 대신, 수학적 성질을 이용하면 반복문 없이 한 번의 연산으로 답을 구할 수 있습니다.left 또는 right 중 하나라도 홀수라면 → (right - l

  12. 파이썬으로 인덱스 배열을 활용해 문자열 순서 재배치하기

    문자열 s와 인덱스 리스트 ind가 주어졌을 때, 두 값의 길이는 서로 같다고 가정해 봅시다. 문자열 s는 원래 위치 i에 있던 문자가 최종 결과 문자열의 indices[i] 위치로 이동하는 방식으로 재배치(shuffle)됩니다. 우리의 목표는 최종적으로 만들어지는 문자열을 구하는 것입니다.예를 들어 입력이 다음과 같다면,s = ktoalakind = [0,5,1,6,2,4,3]출력은 kolkata가 됩니다. 각 문자가 지정된 인덱스 위치로 이동하면서 원래 의미 있는 단어로 복원되는 것입니다.해결 접근 방법이 문제는 다음 단계를 통

  13. 파이썬으로 '좋은 삼중항(Good Triplet)'의 개수 찾기

    배열 nums와 서로 다른 세 정수 a, b, c가 주어졌을 때, 조건을 만족하는 좋은 삼중항(good triplet)의 개수를 구해야 합니다.좋은 삼중항의 조건삼중항 (nums[i], nums[j], nums[k])이 좋은 삼중항이 되려면 아래 조건들을 모두 만족해야 합니다.0 <= i < j < k < nums의 원소 개수|nums[i] - nums[j]| <= a|nums[j] - nums[k]| <= b|nums[i] - nums[k]| <= c즉, 인접한 두 원소뿐 아니라 첫 번째와 마

  14. Python으로 배열에서 k번째 누락된 양수 찾는 방법

    정렬되어 있고 엄격하게 증가하는 양의 정수로 구성된 배열 nums와 정수 k가 주어졌다고 가정해 봅시다. 이때 우리가 해야 할 일은 배열에 존재하지 않는 양의 정수 중에서 k번째로 작은 수를 찾는 것입니다.예를 들어, 입력이 nums = [1,2,4,8,12], k = 6이라면 출력은 10이 됩니다. 그 이유는 누락된 숫자들이 [3,5,6,7,9,10,11]이고, 그중 여섯 번째 숫자가 바로 10이기 때문입니다.해결 접근 방법이 문제는 아래 단계를 따라 해결할 수 있습니다.배열 요소들의 조회 속도를 높이기 위해 nums를 집합(se

  15. 파이썬으로 문자열에서 '좋은 문자열' 찾기 — 인접한 대소문자 쌍 제거하기

    영어 대소문자로 이루어진 문자열 s가 있다고 가정해 보겠습니다. 이때 다음 조건에 해당하는 인접한 두 문자 s[i]와 s[i+1]의 쌍이 하나도 없는 문자열을 좋은 문자열(good string)이라고 정의합니다. 0 <= i <= len(s) - 2 s[i]가 소문자이고 s[i+1]이 같은 글자의 대문자인 경우, 또는 그 반대의 경우 문자열을 좋은 문자열로 만들려면, 문자열을 나쁘게 만드는 인접한 두 문자를 골라 제거하면 됩니다. 이 과정을 문자열이 좋은 문자열이 될 때까지 반복합니다(빈 문자열 역시 좋은 문자열로 간

  16. Python으로 배열에 연속된 세 개의 홀수가 있는지 확인하는 방법

    배열 nums가 주어졌을 때, 이 배열 안에 연속된 세 개의 홀수가 존재하는지 확인하는 프로그램을 만들어 보겠습니다.예를 들어 입력이 다음과 같다고 가정해 봅시다.nums = [18, 15, 2, 19, 3, 11, 17, 25, 20]이 경우 [3, 11, 17]처럼 연속된 세 개의 홀수가 존재하므로 출력 결과는 True가 됩니다.문제 해결 접근 방법이 문제는 배열을 한 번만 순회하면서 인접한 세 원소씩 검사하면 간단히 해결할 수 있습니다. 단계별로 살펴보면 다음과 같습니다.먼저 배열의 길이를 구합니다.배열의 길이가 1 또는 2라

  17. 파이썬으로 숫자 천 단위마다 콤마(,) 넣는 방법 완벽 정리

    숫자 n이 주어졌을 때, 이 숫자를 천 단위마다 콤마(",")로 구분된 문자열 형태로 변환하는 프로그램을 만들어 보겠습니다.예를 들어 입력값이 n = 512462687이라면, 출력 결과는 "512,462,687"이 되어야 합니다.문제 해결 접근 방법이 문제는 다음과 같은 단계로 해결할 수 있습니다.숫자 n을 문자열로 변환합니다.변환된 문자열을 뒤집습니다. (뒤에서부터 세 자리씩 묶기 위함)결과를 담을 빈 문자열을 준비합니다.뒤집힌 문자열을 처음부터 끝까지 순회하며, 인덱스가 3의 배수이고 0이 아

  18. Python으로 원형 트랙에서 가장 많이 방문한 섹터 찾기

    문제 개요 숫자 n과 배열 rounds가 주어진다고 가정해 보겠습니다. 우리에게는 1부터 n까지 번호가 매겨진 n개의 서로 다른 섹터로 이루어진 원형 트랙이 있습니다. 이 트랙 위에서 경주가 열리며, 경주는 총 m개의 라운드로 구성됩니다. i번째 라운드는 rounds[i-1]번 섹터에서 출발하여 rounds[i]번 섹터에서 종료됩니다. 예를 들어 첫 번째 라운드는 rounds[0]에서 시작해 rounds[1]에서 끝납니다. 트랙의 번호는 반시계 방향으로 섹터 번호가 오름차순으로 증가하며, 우리의 목표는 경주 중 가장 많이 방문된

  19. 파이썬(Python)으로 K번 이상 반복되는 길이 m의 패턴 존재 여부 확인하기

    문제 소개양의 정수로 이루어진 배열 nums가 주어졌을 때, k번 이상 반복되는 길이 m의 패턴이 존재하는지 확인해야 합니다. 여기서 패턴이란 하나 이상의 값으로 구성된 연속된 부분 배열이 여러 번 반복되는 형태를 의미하며, 패턴은 길이와 반복 횟수로 정의됩니다.예를 들어 입력이 다음과 같다고 가정해 보겠습니다.nums = [3,5,1,4,3,1,4,3,1,4,3,9,6,1]m = 3k = 2이 경우 출력은 True입니다. 배열 안에 [1,4,3]이라는 패턴이 세 번 등장하기 때문입니다.해결 접근 방법이 문제는 리스트 슬라이싱(sl

  20. 파이썬으로 정사각 행렬의 대각선 합 구하기

    정사각 행렬(square matrix)이 하나 주어졌다고 가정해 봅시다. 우리가 구해야 할 값은 이 행렬의 대각선 요소들의 총합입니다. 즉, 주대각선(primary diagonal)과 부대각선(secondary diagonal)에 있는 모든 요소를 더하되, 두 대각선이 교차하는 중앙 요소는 중복 계산되지 않도록 한 번만 포함해야 합니다.예를 들어 다음과 같은 4×4 행렬이 입력으로 주어진 경우를 살펴보겠습니다.10596815323812321173주대각선 요소는 [10, 15, 12, 3]으로 그 합은 40이며, 부대각선 요소는 [6

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:278/450  20-컴퓨터/Page Goto:1 272 273 274 275 276 277 278 279 280 281 282 283 284