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

Python

  1. Python으로 두 동심원 경계 안에 원이 완전히 포함되는지 확인하는 방법

    반지름이 각각 r1과 r2인 두 개의 동심원(중심이 같은 원)이 있다고 가정해 보겠습니다. 여기에 추가로 중심 좌표 coord와 반지름 값 r이 주어집니다. 우리가 확인해야 할 것은, coord를 중심으로 하는 반지름 r짜리 원이 주어진 두 동심원이 형성하는 경계 영역 안에 완전히 들어가는지 여부입니다.예를 들어 입력이 r1 = 4, r2 = 2, coord = (3, 0), r = 1이라면 결과는 True입니다.풀이 접근 방법이 문제는 기하학적 거리 계산만으로 간단하게 해결할 수 있습니다. 핵심 아이디어는 다음과 같습니다.먼저 원

  2. 파이썬으로 정점의 차수 목록이 그래프인지 트리인지 판별하기

    정점(vertex)들의 차수(degree) 목록이 주어졌을 때, 이 차수들이 트리(tree)를 나타내는지 아니면 일반적인 그래프(graph)를 나타내는지 판별해야 합니다. 예를 들어 deg = [2,2,3,1,1,1]이 입력으로 주어지면 결과는 Tree입니다. 해결 원리 이 문제는 그래프 이론의 두 가지 기본 성질을 활용하면 간단하게 해결할 수 있습니다. 트리의 성질: n개의 정점을 가진 트리는 정확히 n−1개의 간선을 가집니다. 핸드셰이킹 보조정리(Handshaking Lemma): 그래프에서 모든 정점 차수의 합은 간선 개수

  3. 파이썬에서 부동 소수점 숫자가 짝수인지 홀수인지 확인하는 방법

    파이썬에서 부동 소수점(floating point) 숫자가 짝수인지 홀수인지 판별해야 하는 경우가 있습니다. 정수라면 마지막 자릿수를 2로 나누어 보면 쉽게 알 수 있지만, 부동 소수점 숫자는 그렇게 간단하지 않습니다. 소수점 아래 자릿수까지 함께 고려해야 하기 때문입니다.예를 들어 입력이 n = 200.290이라고 해보겠습니다. 겉보기에는 마지막 자릿수가 0이라 짝수처럼 보이지만, 실제 출력은 Odd(홀수)입니다. 소수점 이하에서 0이 아닌 가장 오른쪽 유효 숫자가 9이기 때문입니다. 즉, 부동 소수점 숫자의 홀짝은 소수부의 유효

  4. Python으로 두 문자열을 연결해 특정 문자열을 만들 수 있는지 확인하는 방법

    두 개의 문자열 s와 t, 그리고 결과 문자열 r이 주어졌을 때, r이 s + t 또는 t + s로 만들어질 수 있는지 확인하는 문제를 살펴보겠습니다. 여기서 +는 문자열 연결(concatenation)을 의미합니다.예를 들어, 입력이 s = world, t = hello, r = helloworld라면 출력은 True가 됩니다. 왜냐하면 helloworld(r)는 hello(t)와 world(s)를 연결한 것과 같기 때문입니다.해결 접근 방법이 문제는 다음 단계를 통해 해결할 수 있습니다.먼저 r의 길이가 s와 t의 길이 합과 같

  5. 파이썬으로 세 숫자가 인접한 소수인지 확인하는 방법

    세 개의 숫자가 주어졌을 때, 이 숫자들이 인접한 소수(adjacent primes)인지 확인해야 하는 경우가 있습니다. 인접한 소수란 두 소수 사이에 다른 소수가 존재하지 않는, 즉 서로 바로 이어지는 소수를 의미합니다.예를 들어 입력이 nums = [5, 7, 11]이라면, 5 다음 소수는 7이고 7 다음 소수는 11이므로 출력은 True가 됩니다.문제 해결 접근 방식이 문제는 다음 단계를 따라 해결할 수 있습니다.세 숫자 중 하나라도 소수가 아니라면 False를 반환합니다.x의 다음 소수가 y와 같지 않다면 False를 반환합

  6. 파이썬에서 한 요소만 수정해 두 배열을 동일하게 만들 수 있는지 확인하는 방법

    두 개의 배열 nums1, nums2와 정수 값 k가 주어졌다고 가정해 봅시다. 이때 nums1의 요소 중 단 하나만 다음과 같은 방식으로 수정해 두 배열을 동일하게 만들 수 있는지 확인해야 합니다.수정 방식은 nums1의 임의의 요소에 [-k, k] 범위 안의 값을 더하는 것이며, 이 작업은 딱 한 번만 수행할 수 있습니다.예제 입력 살펴보기입력이 다음과 같다고 해봅시다.nums1 = [5, 7, 11]nums2 = [5, 5, 11]k = 8이 경우 출력은 True입니다. nums1[1]인 7에 범위 [-8, 8] 안에 있는 값

  7. Python으로 K번째 비트가 설정되어 있는지 확인하는 방법

    문제 개요숫자 n과 값 k가 주어졌을 때, n의 k번째 비트가 설정(1)되어 있는지 여부를 확인해야 합니다. 이때 k는 오른쪽 끝 비트부터 세는 기준으로 사용합니다.예를 들어 입력이 n = 23, k = 3이라면 출력은 True가 됩니다. 23의 이진수 표현은 10111이며, 오른쪽에서 세 번째 비트가 1로 설정되어 있기 때문입니다.해결 접근 방법이 문제는 다음 단계를 통해 해결할 수 있습니다.n을 오른쪽으로 (k - 1)비트만큼 시프트한 값을 temp에 저장합니다.temp와 1을 AND 연산한 결과가 1이면 True를 반환합니다.

  8. Python으로 숫자가 다면체 소수(Dihedral Prime)인지 확인하는 방법

    다면체 소수(Dihedral Prime)란 무엇일까? 숫자 n이 주어졌을 때, 이 수가 다면체 소수(dihedral prime)인지 판별하는 문제입니다. 다면체 소수란 그 수 자체가 소수이면서, 7세그먼트 디스플레이(계산기나 디지털 시계에 사용되는 숫자 표시 방식)로 나타냈을 때 디스플레이를 정방향으로 보든 거꾸로 돌려 보든 항상 같은 숫자 또는 다른 소수로 읽히는 수를 의미합니다. 예를 들어 n = 1181을 입력하면 결과는 True입니다. 1181을 7세그먼트 디스플레이에 표시한 뒤 180도 회전해도 여전히 1181로 읽히며,

  9. Python으로 n개 숫자의 곱이 짝수인지 홀수인지 확인하는 방법

    문제 개요숫자 배열 nums가 주어졌을 때, 이 숫자들을 모두 곱한 결과가 짝수인지 홀수인지 판별해야 합니다.예를 들어 입력이 nums = [5,7,4,2,6]이라면 곱은 5 × 7 × 4 × 2 × 6 = 1680이고, 1680은 짝수이므로 출력은 Even이 됩니다.접근 방법곱셈의 성질을 활용하면 실제로 모든 수를 일일이 곱하지 않고도 결과를 빠르게 판별할 수 있습니다.배열에 짝수가 하나라도 포함되어 있으면 전체 곱은 반드시 짝수입니다.모든 수가 홀수일 때만 전체 곱이 홀수가 됩니다.따라서 다음과 같은 단계로 문제를 해결할 수 있

  10. 파이썬 – 짝수 자릿수 숫자의 곱이 홀수 자릿수 숫자의 합으로 나누어 떨어지는지 확인하는 방법

    숫자 n이 주어졌을 때, 짝수 자리에 있는 숫자들의 곱이 홀수 자리에 있는 숫자들의 합으로 나누어 떨어지는지 확인해야 합니다. 여기서 자리는 오른쪽에서 왼쪽 방향으로 세며, 가장 오른쪽 자리를 1번째 자리로 간주합니다.예를 들어 입력값이 n = 59361이라면 출력은 True가 됩니다. 짝수 자리(2번째, 4번째)에 있는 숫자는 6과 9이므로 곱은 6 × 9 = 54이고, 홀수 자리(1번째, 3번째, 5번째)에 있는 숫자는 1, 3, 5이므로 합은 1 + 3 + 5 = 9입니다. 54는 9로 나누어 떨어지므로 결과는 True입니다.

  11. 파이썬으로 숫자의 짝수 자리 숫자들의 곱이 K로 나누어 떨어지는지 확인하는 방법

    숫자 n과 또 다른 숫자 k가 주어졌을 때, n의 짝수 자리에 있는 숫자들의 곱이 k로 나누어 떨어지는지 확인해야 합니다. 여기서 자리수는 오른쪽에서 왼쪽 방향으로 세며, 가장 오른쪽 자리가 1번째 자리입니다.예를 들어 입력이 n = 59361이라면, 짝수 자리(2번째, 4번째, 6번째)에 있는 숫자들은 1, 3, 5이고 이들의 곱은 15입니다. 15는 3으로 나누어 떨어지므로 출력 결과는 True가 됩니다.문제 해결 접근 방법이 문제는 다음 단계를 따라 해결할 수 있습니다:주어진 숫자 n의 전체 자릿수를 계산합니다.곱을 저장할 변

  12. 파이썬으로 범위 내 정수들의 곱이 양수, 음수 또는 0인지 확인하는 방법

    문제 개요범위 [l, u]의 하한값과 상한값이 주어졌을 때, 해당 범위에 포함된 모든 숫자를 곱한 결과가 양수인지, 음수인지, 아니면 0인지 판별해야 합니다.예를 들어 l = -8, u = -2가 입력으로 주어진 경우, 범위 내 값은 [-8, -7, -6, -5, -4, -3, -2]이며, 이들의 곱은 -40320입니다. 따라서 출력 결과는 Negative(음수)가 됩니다.해결 접근 방식범위의 모든 숫자를 실제로 곱하면 비효율적일 수 있으므로, 부호의 성질을 이용해 논리적으로 판단하는 것이 핵심입니다. 다음 단계로 문제를 해결할 수

  13. 파이썬으로 직각삼각형 판별하기 – 세 변의 길이로 피타고라스 정리 적용하기

    리스트에 담긴 세 변의 길이가 주어졌을 때, 이 세 변이 직각삼각형을 이루는지 판별해야 하는 경우가 있습니다.예를 들어 입력이 sides = [8, 10, 6]이라면, 8² + 6² = 64 + 36 = 100 = 10²가 성립하므로 출력 결과는 True가 됩니다.이 문제는 피타고라스 정리(a² + b² = c²)를 활용하면 간단하게 해결할 수 있습니다. 해결 과정은 다음과 같습니다.해결 접근 방법먼저 리스트 sides를 오름차순으로 정렬합니다. 이렇게 하면 가장 큰 값(빗변 후보)이 마지막 위치에 오게 됩니다.정렬 후 sides[

  14. 숫자가 a^b 거듭제곱 형태로 표현 가능한지 확인하는 방법 (C++ · 파이썬)

    문제 개요 하나의 숫자 n이 주어졌을 때, 이 숫자를 어떤 수 a의 거듭제곱, 즉 a^b(a의 b제곱) 형태로 표현할 수 있는지 판별하는 문제입니다. 예를 들어 입력값이 125라면, 125 = 5³으로 나타낼 수 있으므로 a = 5, b = 3이 되고 결과는 참(True)입니다. 반면 10처럼 같은 수의 거듭제곱으로 표현할 수 없는 숫자라면 거짓(False)이 됩니다. 해결 접근 방식 핵심 아이디어는 로그(log) 연산을 활용하는 것입니다. 만약 num = a^b가 성립한다면, 양변에 로그를 취했을 때 log(num) / log(

  15. Python에서 한 문자열의 문자들로 다른 문자열을 만들 수 있는지 확인하는 방법

    두 개의 문자열 s와 t가 주어졌을 때, 문자열 t가 s에 포함된 문자들을 사용하여 구성될 수 있는지 확인해야 합니다. 예를 들어, s = owleh이고 t = hello라면, s의 문자들을 조합하여 hello를 만들 수 있으므로 출력은 True가 됩니다. 문제 해결 접근 방법 이 문제는 문자 빈도수 카운팅을 통해 효율적으로 해결할 수 있습니다. 핵심 아이디어는 다음과 같습니다. s의 각 문자별 등장 횟수를 저장하는 맵(freq)을 생성합니다. t의 각 문자를 순회하면서, 해당 문자의 남은 개수가 0이라면 필요한 문자가 부족한

  16. 파이썬으로 숫자의 홀수 자릿수 합이 K로 나누어 떨어지는지 확인하는 방법

    숫자 n과 또 다른 숫자 k가 주어졌을 때, n의 홀수 자리(오른쪽에서 왼쪽 방향)에 위치한 자릿수들의 합이 k로 나누어 떨어지는지 확인하는 문제입니다.예를 들어, 입력이 n = 2416, k = 5라고 가정해 보겠습니다. 오른쪽에서 왼쪽으로 셀 때 홀수 자리에 있는 숫자들은 4와 6이며, 이들의 합은 4 + 6 = 10입니다. 10은 5로 나누어 떨어지므로 결과는 True가 됩니다.문제 해결 접근 방식이 문제는 다음 단계를 따라 해결할 수 있습니다.합계를 저장할 변수 total을 0으로, 자리 위치를 나타낼 변수 pos를 1로 초

  17. 파이썬으로 문자열의 평균 문자 구하기

    영숫자로 이루어진 문자열 s가 주어졌을 때, 문자열의 평균 문자가 존재하는지 확인하고, 존재한다면 해당 문자를 반환해야 합니다. 여기서 평균 문자란 문자열 내 각 문자의 ASCII 값 평균에 내림(floor)을 적용한 값을 의미합니다. 예를 들어 입력이 s = pqrst라면 출력은 r입니다. 각 문자의 ASCII 값은 p=112, q=113, r=114, s=115, t=116이며, 이들의 평균은 (112 + 113 + 114 + 115 + 116) / 5 = 570 / 5 = 114입니다. ASCII 값 114에 해당하는 문자는

  18. Python으로 특정 위치의 비트가 설정(Set) 또는 해제(Unset) 상태인지 확인하는 방법

    프로그래밍에서 숫자 n과 위치 값 k가 주어졌을 때, n의 k번째 비트가 설정(Set, 1)되어 있는지 아니면 해제(Unset, 0)되어 있는지 확인해야 하는 경우가 자주 발생합니다. 이때 비트의 위치는 가장 오른쪽(LSB)부터 세기 시작한다고 가정합니다. 문제 이해하기 예를 들어 입력이 n = 18, k = 2라고 가정해 보겠습니다. 18의 이진수 표현은 10010입니다. 오른쪽에서 두 번째 비트가 1이므로, 출력 결과는 Set이 됩니다. 해결 접근 방식 이 문제는 다음 단계를 통해 간단히 해결할 수 있습니다. n을 오른쪽으

  19. Python으로 문자열 내 모든 문자의 빈도가 소수인지 확인하는 방법

    문자열 s가 주어졌을 때, 문자열에 등장하는 각 문자의 빈도(출현 횟수)가 모두 소수인지 확인해야 합니다.예를 들어 입력이 s = apuuppa라면 결과는 True입니다. a는 2번, p는 3번, u는 2번 등장하며, 2와 3은 모두 소수이기 때문입니다.문제 해결 접근 방법먼저 각 문자와 그 빈도수를 저장하는 맵(freq)을 생성합니다.맵에 있는 각 문자에 대해 다음을 검사합니다.빈도수가 0보다 크고, 그 값이 소수가 아니라면 False를 반환합니다.모든 문자의 빈도수가 소수라면 True를 반환합니다.소수 판별 함수isPrime 함

  20. 파이썬으로 주어진 숫자가 유클리드 수(Euclid Number)인지 확인하는 방법

    어떤 자연수 n이 주어졌을 때, 이 숫자가 유클리드 수(Euclid Number)에 해당하는지 판별하는 문제를 살펴보겠습니다.유클리드 수란?유클리드 수는 다음과 같은 형태로 표현할 수 있는 정수를 말합니다.n = Pn# + 1여기서 Pn#은 처음 n개의 소수를 모두 곱한 값(소수 곱, 프리모리얼)을 의미합니다. 즉, 앞에서부터 소수를 차례대로 곱한 뒤 1을 더한 수가 바로 유클리드 수입니다.예를 들어 입력값이 n = 211이라면 결과는 True입니다. 그 이유는 211을 다음과 같이 표현할 수 있기 때문입니다.211 = (2 × 3

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