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

Python

  1. Python 배열에서 곱이 k가 되는 하위 배열이 존재하는지 확인하는 방법

    양수와 음수가 섞여 있는 배열 nums와 목표값 k가 주어집니다. 이때 원소들의 곱이 정확히 k가 되는 연속된 하위 배열(부분 배열)이 배열 안에 존재하는지 확인해야 합니다. 예를 들어 입력이 nums = [-2,-1,1,3,5,8], k = 6이라면 결과는 True입니다. 하위 배열 [-2, -1, 3]의 곱이 (-2) × (-1) × 3 = 6이기 때문입니다. 풀이 접근 방식 이 문제는 최대 곱 부분 배열 문제에서 널리 사용되는 동적 계획법 기법을 활용해 해결할 수 있습니다. 핵심 아이디어는 각 인덱스에서 끝나는 하위 배열 중

  2. Python으로 문자열의 접두사와 접미사가 회문인지 확인하는 방법

    문제 설명문자열 s가 주어졌을 때, 해당 문자열에 회문(palindrome)인 접두사(prefix)와 접미사(suffix)가 모두 존재하는지 확인하는 문제입니다.예를 들어 입력이 s = levelishighforracecar라면, 앞부분의 level과 뒷부분의 racecar가 각각 회문이므로 결과는 True가 됩니다.접근 방법다음 단계를 따라 문제를 해결할 수 있습니다.변수 l에 문자열 s의 길이를 저장합니다.i를 2부터 l까지 1씩 증가시키면서, s의 첫 번째 문자부터 i번째 문자까지의 부분 문자열이 회문인지 검사합니다. 회문을

  3. 파이썬으로 두 숫자의 약수 합이 같은지 확인하는 방법

    두 개의 숫자 p와 q가 주어졌을 때, 이 두 숫자의 모든 약수(제수)의 합이 서로 같은지 확인하는 문제를 풀어보겠습니다.예를 들어 p = 559, q = 703이라고 가정해 봅시다. 559의 약수는 1, 13, 43이고, 703의 약수는 1, 19, 37입니다. 각각의 약수 합을 계산해 보면 다음과 같습니다.559의 약수 합: 1 + 13 + 43 = 57703의 약수 합: 1 + 19 + 37 = 57두 합이 모두 57로 같으므로 결과는 True가 됩니다.문제 해결 접근 방식이 문제는 다음 단계를 따라 해결할 수 있습니다.약수의

  4. Python으로 행렬의 i번째 행과 i번째 열의 합이 같은지 확인하는 방법

    문제 개요2차원 행렬(매트릭스)이 주어졌을 때, i번째 행의 합과 i번째 열의 합이 서로 같은지 확인하는 프로그램을 작성해야 합니다.예를 들어, 다음과 같은 행렬이 입력으로 주어진다고 가정해 보겠습니다.23451064214671567이 경우 출력 결과는 True입니다. 첫 번째 행의 합은 (2 + 3 + 4 + 5) = 14이고, 첫 번째 열의 합은 (2 + 10 + 1 + 1) = 14로 두 값이 동일하기 때문입니다.해결 접근 방법이 문제는 다음 단계를 통해 해결할 수 있습니다.행렬의 행(row) 개수와 열(column) 개수를

  5. Python으로 주어진 인덱스 쌍의 교환만으로 배열 정렬 가능 여부 확인하기

    문제 이해하기0부터 n-1까지의 고유한 값으로 구성된 배열 nums가 있다고 가정해 봅시다. 이 배열은 현재 정렬되어 있지 않습니다. 또 다른 입력으로 인덱스 쌍(pair) 목록이 주어지는데, 각 쌍은 배열 내에서 원소를 서로 교환(swap)할 수 있는 두 인덱스를 의미합니다. 교환은 원하는 만큼 여러 번 반복할 수 있으며, 우리는 주어진 교환 규칙만을 사용해 배열을 오름차순으로 정렬할 수 있는지 판별해야 합니다.예를 들어 입력이 다음과 같다고 해보겠습니다.nums = [6,1,7,3,0,5,4,2]pairs = [(0,4), (6

  6. 파이썬으로 배열에서 나머지 요소들의 곱과 같은 값 찾는 방법

    문제 개요배열 nums가 주어졌을 때, 이 배열 안에 나머지 모든 요소들의 곱과 값이 같은 요소가 존재하는지 확인하는 문제입니다.예를 들어 입력이 nums = [3, 2, 24, 4, 1]이라면 출력은 True입니다. 그 이유는 24가 나머지 요소들의 곱(3 × 2 × 4 × 1 = 24)과 일치하기 때문입니다.해결 접근 방식이 문제는 다음 단계를 통해 해결할 수 있습니다.곱을 저장할 변수 mul을 1로 초기화합니다.배열의 모든 요소를 순회하며 mul에 각 요소를 곱해 전체 곱을 구합니다.다시 배열을 순회하면서 각 요소 nums[i

  7. Python으로 배열에 나머지 모든 요소의 합과 같은 값을 가진 요소가 있는지 확인하는 방법

    문제 개요nums라는 이름의 배열이 주어졌을 때, 이 배열 안에 나머지 모든 요소들의 합과 값이 동일한 요소가 존재하는지 확인하는 것이 목표입니다.예를 들어, 입력이 nums = [3, 2, 10, 4, 1]이라면 출력은 True입니다. 그 이유는 10 = (3 + 2 + 4 + 1)이 성립하기 때문입니다.핵심 아이디어이 문제는 간단한 수학적 성질을 이용하면 효율적으로 해결할 수 있습니다.어떤 요소 x가 나머지 요소들의 합과 같다면, 전체 합(total)은 x * 2와 같습니다.따라서 x는 반드시 total / 2여야 하며, tot

  8. 파이썬으로 배열이 '아름다운' 배열인지 판별하는 방법

    문제 소개 중복 없는 고유한 원소들로 구성된 배열 nums가 주어졌을 때, 이 배열이 다음 두 조건을 모두 만족하는지 확인하는 문제입니다. 범위 조건: 모든 원소가 1부터 n(배열의 길이) 사이의 값이어야 합니다. 정렬 조건: 배열이 오름차순으로 정렬되어 있으면 안 됩니다. 예를 들어 입력이 nums = [2,6,1,5,3,4]라면 두 조건을 모두 충족하므로 결과는 True가 됩니다. 풀이 접근 방식 이 문제는 배열을 한 번만 순회하면 되므로 O(n) 시간 복잡도로 해결할 수 있습니다. 단계별로 살펴보면 다음과 같습니다. n

  9. Python으로 숫자의 이진 표현에서 0과 1 블록의 길이가 같은지 확인하는 방법

    숫자 num이 주어졌을 때, 이 숫자의 이진 표현에서 연속된 0과 1로 이루어진 각 블록(묶음)의 길이가 모두 동일한지 확인해야 합니다. 단, 숫자 0과 모든 자릿수가 1로만 이루어진 수는 블록을 가진다고 간주하지 않으므로 제외합니다.예를 들어 입력이 num = 455라고 해보겠습니다. 455의 이진 표현은 111000111이며, 이는 111, 000, 111이라는 세 개의 블록으로 나뉘고 각 블록의 길이가 모두 3으로 같습니다. 따라서 출력은 True가 됩니다.해결 접근 방법이 문제는 다음 단계에 따라 해결할 수 있습니다.bin_

  10. 파이썬으로 O(1) 추가 공간만 사용해 문자열의 알파벳이 회문을 이루는지 확인하는 방법

    문제 개요문자열 s가 주어졌다고 가정해 보겠습니다. 이 문자열에는 소문자 알파벳뿐만 아니라 특수 문자나 숫자도 섞여 있을 수 있습니다. 우리가 확인해야 할 것은 문자열에서 알파벳 문자만 추출했을 때 회문(palindrome)을 형성하는지 여부입니다. 여기서 중요한 제약 조건은 O(1)의 추가 공간, 즉 별도의 추가 메모리를 사용하지 않고 문제를 해결해야 한다는 점입니다.예를 들어 입력이 s = ra$5ce58car라고 해보겠습니다. 숫자와 특수 문자를 무시하고 알파벳만 읽으면 racecar가 되는데, 이는 앞뒤가 같은 회문이므로 결

  11. Python에서 주어진 문자열의 문자가 알파벳 순서인지 확인하는 방법

    문자열 s가 주어졌을 때, s의 문자들이 알파벳 순서(오름차순)로 배치되어 있는지 확인해야 합니다.예를 들어 입력이 s = mnnooop이라면 출력은 True가 됩니다. m, n, n, o, o, o, p의 각 문자가 이전 문자보다 크거나 같기 때문에 알파벳 순서를 유지하고 있다고 판단할 수 있습니다.문제 해결 접근 방식이 문제는 다음 단계를 통해 해결할 수 있습니다:문자열 s의 문자들로 새 리스트 char_arr를 생성합니다.char_arr를 정렬합니다.정렬된 char_arr가 원래 문자열의 문자 리스트와 동일하면 True, 그렇

  12. Python으로 스택의 요소들이 쌍으로 연속되어 있는지 확인하는 방법

    숫자로 이루어진 스택이 주어졌을 때, 스택 안의 값들이 쌍(pair) 단위로 연속되어 있는지 확인해야 하는 문제를 생각해 봅시다. 여기서 각 쌍은 값이 증가하거나 감소하는 형태 모두 가능합니다. 만약 스택에 홀수 개의 값이 들어 있다면, 맨 위(top)에 있는 요소는 쌍을 이루지 못하므로 검사 대상에서 제외됩니다. 또한 중요한 조건은, 검사가 끝난 후에도 원래 스택의 내용을 그대로 유지해야 한다는 점입니다.이 문제는 스택의 기본 연산인 push, pop, 그리고 스택이 비어 있는지 확인하는 연산만을 사용하여 해결할 수 있습니다.예를

  13. 파이썬으로 가장 작은 수를 만들어 첫 자리·끝자리 조합이 소수인지 확인하는 방법

    문제 설명 숫자(0~9)로만 이루어진 배열 digits가 주어졌다고 가정해 보겠습니다. 이 문제에서 해야 할 일은 다음과 같습니다. 주어진 숫자들을 조합해 만들 수 있는 가장 작은 수를 찾습니다. 그 수의 첫 번째 자리 숫자와 마지막 자리 숫자를 조합해 만든 두 개의 두 자리 수가 소수인지 확인합니다. 생성된 수 자체와 소수 판별 결과를 출력합니다. 예를 들어 입력이 digits = [5, 2, 1, 7]이라면, 만들 수 있는 가장 작은 수는 1257입니다. 이때 첫 자리와 끝자리를 조합한 수는 17(첫 자리 1 + 끝자리 7)

  14. Python으로 숫자의 모든 자릿수 빈도가 같은지 확인하는 방법

    어떤 수 num이 주어졌을 때, 이 수가 균형 잡힌(balanced) 수인지 판별하는 문제를 생각해 봅시다. 여기서 균형 잡힌 수란 모든 자릿수의 등장 빈도가 서로 동일한 수를 의미합니다. 예를 들어 입력값이 num = 562256라고 해 보겠습니다. 이 수를 구성하는 자릿수는 5, 6, 2 세 종류뿐이며, 각각 정확히 두 번씩 등장합니다. 따라서 결과는 True가 됩니다. 해결 접근 방법 이 문제는 다음과 같은 단계로 해결할 수 있습니다. 1단계: num을 문자열로 변환합니다. 문자열로 바꾸면 각 자릿수에 손쉽게 접근할 수 있습

  15. Python으로 특정 문자의 빈도가 문자열 길이의 절반을 넘는지 확인하는 방법

    소문자, 대문자, 숫자, 특수문자가 섞여 있는 문자열 s가 주어졌다고 가정해 봅시다. 이때 특정 하나의 문자가 문자열 전체 길이의 절반보다 더 많이 등장하는지 확인해야 합니다.예를 들어 입력이 s = CC*Ca5&CC라면 출력은 True가 됩니다. 문자 C의 등장 횟수는 5회이고, 문자열의 길이는 9이기 때문입니다. 즉, 5 > 9/2 조건을 만족합니다.해결 접근 방법이 문제는 다음 단계를 따라 해결할 수 있습니다.freq := 문자열 s에 포함된 각 문자의 빈도를 저장하는 맵(딕셔너리) 생성freq의 각 문자 ch에

  16. 파이썬으로 배열을 정확히 k번의 연산만에 모두 0으로 만들 수 있는지 확인하는 방법

    문제 이해하기배열 nums와 값 k가 주어졌을 때, 아래 연산을 정확히 k번 수행하여 배열의 모든 원소를 0으로 만들 수 있는지 확인하는 문제입니다.연산의 정의배열에서 가장 작은 원소를 선택한 뒤, 0이 아닌 나머지 모든 원소에서 그 값을 뺍니다.동작 예시입력이 nums = [2, 2, 3, 5], k = 3인 경우를 살펴보겠습니다. 결과는 True입니다.1. 첫 번째 연산: 가장 작은 값 2를 빼면 배열은 [0, 0, 1, 3]이 됩니다.2. 두 번째 연산: 0이 아닌 값 중 가장 작은 값 1을 빼면 [0, 0, 0, 2]가 됩니

  17. 파이썬으로 배열이 특정 정수의 모든 약수를 포함하는지 확인하는 방법

    배열 nums가 주어졌을 때, 이 배열이 어떤 정수의 모든 약수를 포함하고 있는지 확인하는 문제입니다.예를 들어 입력이 nums = [1, 2, 3, 4, 6, 8, 12, 24]라면, 이 숫자들은 24의 모든 약수이므로 결과는 True가 됩니다.문제 해결 접근 방법이 문제는 다음 단계를 따라 해결할 수 있습니다.최댓값 찾기: nums에서 최댓값(maximum)을 구합니다.약수 생성: 임시 리스트(temp)를 만들고, 1부터 최댓값의 제곱근까지 반복하면서 다음을 수행합니다.최댓값이 i로 나누어 떨어지면 i를 temp에 추가합니다.이

  18. Python으로 숫자가 0과 1로만 이루어졌는지 확인하는 방법

    숫자 num이 주어졌을 때, 이 숫자가 오직 0과 1로만 구성되어 있는지 확인해야 합니다.예를 들어, 입력값이 num = 101101이라면 출력 결과는 True가 됩니다.문제 해결 접근 방식이 문제는 다음 단계를 통해 해결할 수 있습니다.num의 모든 자릿수를 요소로 가지는 새로운 집합(set)인 digits_set을 생성합니다.digits_set에서 0을 제거합니다.digits_set에서 1을 제거합니다.만약 digits_set의 크기가 0이라면, 즉 남은 자릿수가 없다면 True를 반환합니다.그렇지 않으면 False를 반환합니다

  19. 파이썬(Python)으로 주어진 숫자가 오레 수(Ore Number)인지 판별하는 방법

    오레 수(Ore Number)란 무엇일까요? 숫자 n이 주어졌을 때, 이 숫자가 오레 수(Ore number)인지 판별해야 합니다. 오레 수란 모든 양의 약수들의 조화평균(harmonic mean)이 정수가 되는 수를 의미하며, 조화약수(Harmonic Divisor Number)라고도 불립니다. 예를 들어 입력이 28이라면 출력은 True입니다. 28의 약수는 [1, 2, 4, 7, 14, 28]로 총 6개이며, 이들 약수의 조화평균은 다음과 같이 계산됩니다. H = 6 ÷ (1/1 + 1/2 + 1/4 + 1/7 + 1/14 +

  20. 주어진 숫자 K로 파이썬에서 배열의 끝에 도달할 수 있는지 확인하는 방법

    배열 nums와 값 k가 주어졌을 때, 아래 연산 규칙에 따라 배열의 마지막까지 도달할 수 있는지 판별하는 문제입니다.문제 규칙배열 nums를 순서대로 탐색합니다.현재 값이 소수가 아니면 k를 1 감소시킵니다.현재 값이 소수라면 k를 초기값으로 되돌립니다.예제 살펴보기입력이 nums = [8, 5, 6, 7, 8], k = 2라고 가정해 보겠습니다.nums[0] = 8은 소수가 아니므로 k = 1nums[1] = 5는 소수이므로 k = 2로 리셋nums[2] = 6은 소수가 아니므로 k = 1nums[3] = 7은 소수이므로 k =

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:211/450  20-컴퓨터/Page Goto:1 205 206 207 208 209 210 211 212 213 214 215 216 217