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

Python

  1. 파이썬으로 FizzBuzz 구현하기: 3과 5의 배수를 Fizz, Buzz로 바꾸는 방법

    FizzBuzz 문제란?숫자 n이 주어졌을 때, 1부터 n까지의 모든 숫자를 문자열 형태로 표현하는 것이 목표입니다. 단, 아래 세 가지 규칙을 반드시 따라야 합니다.숫자가 3으로 나누어떨어지면 해당 숫자 대신 Fizz를 넣습니다.숫자가 5로 나누어떨어지면 해당 숫자 대신 Buzz를 넣습니다.숫자가 3과 5 모두로 나누어떨어지면 해당 숫자 대신 FizzBuzz를 넣습니다.FizzBuzz는 코딩 인터뷰에서 자주 등장하는 대표적인 입문 문제로, 조건문과 반복문의 기본 개념을 점검하기에 좋은 예제입니다.문제 해결 접근 방법이 문제는 조건

  2. Python으로 이진 행렬의 각 행 뒤집기 및 비트 반전하기

    이진 행렬(binary matrix) mat이 주어졌다고 가정해 보겠습니다. 우리가 해야 할 작업은 행렬의 각 행을 선택해 순서를 거꾸로 뒤집은 다음, 행 내의 모든 비트를 반전시키는 것입니다. 즉, 0은 1로, 1은 0으로 바꿉니다.문제 예시예를 들어 입력이 다음과 같다면,110010001출력 결과는 다음과 같습니다.100101011풀이 접근 방법이 문제는 다음 단계를 따라 해결할 수 있습니다.행 인덱스를 나타내는 변수 track을 0으로 초기화합니다.mat의 각 행에 대해 다음을 수행합니다.해당 행을 뒤집습니다(reverse).

  3. 파이썬으로 단어 목록을 사각형 프레임에 정렬하는 방법

    여러 개의 단어로 이루어진 목록이 있을 때, 각 단어를 한 줄씩 사각형 프레임 안에 정렬해야 하는 문제가 있다고 가정해 봅시다. 아래 예시를 보면 더 쉽게 이해할 수 있습니다.예를 들어, 입력이 [hello, world, python, programming, nice]라면 출력 결과는 다음과 같습니다.*************** * hello * * world * * python * * programming * * nice * ***************해결 접근 방식이 문제는 다음과 같은

  4. Python으로 특정 시간에 근무 중인 프로그래머 수 구하는 방법

    프로그래밍 문제에서 자주 만나게 되는 유형 중 하나는 구간(Interval) 데이터를 다루는 것입니다. 이번 글에서는 여러 개의 근무 시간 구간과 하나의 특정 시간이 주어졌을 때, 그 시점에 실제로 근무 중인 프로그래머가 몇 명인지 계산하는 방법을 알아보겠습니다.문제 정의구간 목록과 하나의 시간 값(time)이 입력으로 주어집니다. 각 구간은 [시작, 종료] 형태로 표현되며, 해당 프로그래머가 일한 시간대를 나타냅니다. 우리의 목표는 주어진 시간에 근무 중이던 프로그래머의 수를 구하는 것입니다.예를 들어 입력이 다음과 같다고 가정해

  5. Python으로 n 이하의 모든 소수 목록 생성하기

    Python에서 n 이하의 소수 목록 생성 방법숫자 n이 하나 주어졌다고 가정해 봅시다. 이때 n보다 작거나 같은 모든 소수(prime number)를 오름차순으로 정렬된 리스트 형태로 생성해야 합니다. 여기서 한 가지 주의할 점은 1은 소수가 아니라는 사실입니다.예를 들어 입력값이 12라면, 출력 결과는 다음과 같습니다.[2, 3, 5, 7, 11]문제 해결 접근 방식이 문제는 고전적인 에라토스테네스의 체(Sieve of Eratosthenes) 알고리즘을 활용하면 효율적으로 해결할 수 있습니다. 구체적인 단계는 다음과 같습니다.

  6. 파이썬으로 리스트의 최대공약수(GCD) 구하기

    문제 개요양의 정수로 이루어진 리스트 nums가 주어졌을 때, 리스트의 모든 숫자를 나눌 수 있는 가장 큰 양의 정수, 즉 최대공약수(GCD)를 구하는 문제입니다.예를 들어 입력이 [14, 28, 70, 56]이라면, 이 네 숫자를 모두 나눌 수 있는 가장 큰 수는 14이므로 출력 결과는 14가 됩니다.해결 접근 방법최대공약수에는 다음과 같은 중요한 성질이 있습니다.gcd(a, b, c) = gcd(gcd(a, b), c)즉, 두 수씩 차례대로 최대공약수를 구하다 보면 전체 리스트의 최대공약수를 얻을 수 있습니다. 이 성질을 활용한

  7. Python – 정수 리스트를 조건에 맞는 그룹으로 나눌 수 있는지 확인하기

    문제 설명숫자로 이루어진 리스트 nums가 주어졌을 때, 이 리스트를 하나 이상의 그룹으로 나눌 수 있는지 확인해야 합니다. 단, 나눈 그룹은 다음 세 가지 조건을 모두 만족해야 합니다.각 그룹의 크기는 2 이상이어야 합니다.모든 그룹의 크기는 서로 같아야 합니다.같은 그룹 안에 들어 있는 숫자는 모두 동일해야 합니다.예를 들어 입력이 [3, 4, 6, 9, 4, 3, 6, 9]라면 결과는 True입니다. 각 숫자(3, 4, 6, 9)가 정확히 두 번씩 등장하므로, 같은 숫자끼리 두 개씩 묶어 총 네 개의 그룹을 만들 수 있기 때문

  8. 파이썬으로 제곱근의 정수 부분 구하기: 내장 함수 없이 이진 탐색 활용

    음이 아닌 수 n이 주어졌을 때, r * r = n을 만족하는 수 r을 찾고, 그 값을 가장 가까운 정수로 내림(버림)해야 하는 문제가 있습니다. 단, 파이썬의 내장 제곱근 함수(예: math.sqrt())는 사용할 수 없습니다.예를 들어 입력값이 1025라면, 32 × 32 = 1024 ≤ 1025이므로 출력은 32가 됩니다.문제 해결 접근 방법이 문제는 이진 탐색(Binary Search)을 활용하면 효율적으로 해결할 수 있습니다. 탐색 범위를 절반씩 줄여가면서 조건을 만족하는 최댓값을 찾는 방식입니다.알고리즘 단계n이 1 이하

  9. 파이썬으로 행복한 수(Happy Number) 판별하기

    어떤 양의 정수 n이 주어졌을 때, 이 숫자가 행복한 수(Happy Number)인지 판별하는 문제를 살펴보겠습니다. 행복한 수(Happy Number)란? 행복한 수는 임의의 양의 정수에서 시작하여, 그 수를 각 자릿수의 제곱의 합으로 반복해서 대체했을 때 최종적으로 1에 도달하는 수를 의미합니다. 만약 1에 도달하지 못하고 같은 값들이 무한히 반복되는 사이클에 빠진다면 그 수는 행복한 수가 아니며, 과정을 거쳐 1에 도달하는 모든 수가 행복한 수입니다. 예시: 19는 행복한 수일까? 입력이 19일 때 결과는 true입니다.

  10. Python에서 숫자에 5를 삽입해 만들 수 있는 최댓값 구하기

    숫자 n이 주어졌을 때, 이 숫자의 어느 위치에든 5를 한 번 삽입하여 만들 수 있는 최댓값을 찾는 문제입니다. 예를 들어 입력이 n = 826이라면, 5를 첫 번째 자리 뒤에 삽입한 8526이 만들 수 있는 값 중 가장 큽니다. 해결 접근 방법 이 문제는 숫자를 문자열로 다루면 간단하게 해결할 수 있습니다. 핵심 아이디어는 5를 삽입할 수 있는 모든 위치를 시도해 보고, 그중 가장 큰 값을 선택하는 완전 탐색 방식입니다. 단계별로 살펴보겠습니다. temp := n을 문자열로 변환한 값 ans := 음의 무한대(-inf)로 초기화

  11. Python 리스트에서 가장 많이 등장하는 요소의 빈도 계산하기

    Python 프로그래밍에서 nums라는 숫자 리스트가 주어졌을 때, 리스트 안에서 가장 자주 등장하는 요소를 찾고, 그 요소가 총 몇 번 나타나는지 빈도를 구하는 방법을 알아보겠습니다. 예를 들어 입력 리스트가 [1,5,8,5,6,3,2,45,7,5,8,7,1,4,6,8,9,10]이라면, 숫자 5가 세 번 등장하므로 출력 결과는 3이 됩니다. 알고리즘: 단계별 접근 방법 이 문제는 두 개의 중첩 반복문을 사용해 모든 요소 쌍을 서로 비교하는 방식으로 해결할 수 있습니다. 해결 과정은 다음과 같습니다. 최대 빈도를 저장할 변수 m

  12. Python에서 정렬된 순서로 제곱 요소 목록 구하는 방법

    문제 개요정렬된 숫자 리스트가 주어졌을 때, 각 요소를 제곱한 결과를 다시 정렬된 순서로 반환하는 문제입니다. 입력 리스트에는 음수와 0도 포함될 수 있다는 점이 특징입니다.예를 들어, 입력이 [-12,-6,-5,-2,0,1,2,4,8,9,10,15,18,20,35,38,69]라면 출력은 다음과 같습니다.[0, 1, 4, 4, 16, 25, 36, 64, 81, 100, 144, 225, 324, 400, 1225, 1444, 4761]해결 접근 방법이 문제는 다음 단계를 따라 해결할 수 있습니다.새로운 리스트 L을 생성합니다.nu

  13. Python으로 무한 반복 문자열의 특정 구간 부분 문자열 구하기

    문제 개요하나의 문자열 s와 두 개의 정수 i, j(i < j)가 주어졌다고 가정해 봅시다. 이때 p는 문자열 s를 무한히 반복해서 이어 붙인 문자열입니다. 우리의 목표는 p에서 인덱스 범위 [i, j)에 해당하는 부분 문자열을 찾는 것입니다.예를 들어, 입력이 s = programmer, i = 4, j = 8이라면 출력은 ramm이 됩니다.무한 문자열을 실제로 만들 필요는 없습니다. 반복 문자열의 성질을 이용하면 간단하게 해결할 수 있습니다.접근 방법핵심 아이디어는 모듈로(%) 연산입니다. 무한히 반복되는 문자열 p에서 t

  14. 파이썬에서 리스트의 모든 0을 끝으로 이동하기 (제자리 알고리즘)

    문제 설명 숫자로 이루어진 리스트 nums가 주어졌다고 가정해 봅시다. 우리는 리스트를 제자리(in-place)에서 직접 수정하여 모든 0을 리스트의 끝으로 옮겨야 합니다. 이때 나머지 요소들의 상대적인 순서는 그대로 유지되어야 하며, O(1)의 추가 공간만 사용해 문제를 해결하는 것이 목표입니다. 예를 들어 입력이 [2,0,1,4,0,5,6,4,0,1,7]이라면, 출력은 다음과 같습니다. [2, 1, 4, 5, 6, 4, 1, 7, 0, 0, 0] 풀이 접근 방법 핵심 아이디어는 매우 간단합니다. 0이 아닌 요소들을 앞쪽부터 차

  15. Python으로 정수를 3진수 문자열로 변환하는 방법

    문제 소개 하나의 정수 n이 주어졌을 때, 이 숫자를 3진수(base 3)로 변환한 결과를 문자열 형태로 구하는 것이 목표입니다. 예를 들어 입력이 17이라면 출력은 122가 됩니다. 실제로 17은 1×3² + 2×3¹ + 2×3⁰ = 9 + 6 + 2 = 17이므로, 3진수로 표현하면 122에 해당합니다. 해결 알고리즘 10진수를 임의의 진법으로 변환할 때 가장 널리 쓰이는 방식은 반복적인 나눗셈과 나머지 계산입니다. 참고로 파이썬에는 2진수를 위한 bin(), 16진수를 위한 hex() 같은 내장 함수가 있지만, 3진수를 위한

  16. Python으로 두 문자열 인터리빙(교차 결합)하기

    문자열 인터리빙이란?두 개의 문자열 s와 t가 주어졌을 때, 첫 번째 문자열 s부터 시작하여 두 문자열의 문자를 번갈아 가며 교차 배치하는 새로운 문자열을 만드는 문제를 생각해 봅시다. 만약 한쪽 문자열에 문자가 남아 있다면, 남은 문자들은 결과 문자열의 끝에 그대로 추가됩니다.예를 들어, 입력이 s = abcd, t = pqrstu라면 출력은 apbqcrdstu가 됩니다. 두 문자열 중 t가 더 길기 때문에, 앞부분은 a, p, b, q, c, r, d 순서로 교차되고, 남은 stu는 마지막에 붙게 됩니다.해결 접근 방법이 문제는

  17. 파이썬(Python)으로 여러 구간의 교차 구간 찾기

    여러 개의 구간(interval) 목록이 있다고 가정해 보겠습니다. 각 구간은 [시작, 끝] 형태로 표현되며, 시작 시점과 끝 시점을 모두 포함하는(inclusive) 범위를 나타냅니다. 이때 구해야 할 것은 이 구간들의 교차 구간(intersection), 즉 주어진 모든 구간에 공통으로 속하는 구간입니다.예를 들어 입력이 [[10, 110], [20, 60], [25, 75]]라면, 세 구간 모두에 포함되는 범위는 [25, 60]이므로 출력 결과는 [25, 60]이 됩니다.문제 해결 접근 방법이 문제는 다음 단계를 통해 해결할

  18. 파이썬으로 역 팩토리얼 구현하기 — n! = a를 만족하는 정수 n 찾기

    문제 개요어떤 수 a가 주어졌을 때, n! = a를 만족하는 정수 n을 찾는 것이 이번 글의 목표입니다. 팩토리얼은 n! = n × (n−1) × (n−2) × … × 1로 정의되며, 조건을 만족하는 정수 n이 존재하지 않으면 −1을 반환해야 합니다.예를 들어 입력이 a = 120이라면, 5! = 5 × 4 × 3 × 2 × 1 = 120이므로 출력은 5가 됩니다.해결 접근 방법이 문제는 다음 단계를 통해 해결할 수 있습니다.i := 0, num := 1로 초기화합니다.빈 리스트 L을 생성합니다.i < a인 동안 반복합니다.i

  19. Python에서 요소 하나를 제거해 리스트의 평균을 k로 만들 수 있는지 확인하는 방법

    숫자 리스트 nums와 정수 k가 주어졌을 때, 리스트에서 정확히 한 개의 요소를 제거하여 나머지 요소들의 평균이 정확히 k가 되도록 할 수 있는지 확인해야 합니다. 이 문제에는 다음과 같은 제약 조건이 있습니다. 2 ≤ n ≤ 1,000 (n은 nums 리스트의 요소 개수) nums[i] ≤ 1,000,000, k ≤ 1,000,000 예를 들어 입력이 [5,3,2,4,6,10]이고 k = 4라면 결과는 True입니다. 10을 제거하면 나머지 요소들의 평균이 (5+3+2+4+6)/5 = 4가 되어 k와 같아지기 때문입니다. 해

  20. 파이썬으로 K와 -K가 동시에 존재하는 최댓값 찾기

    문제 개요숫자로 이루어진 리스트 nums가 주어졌을 때, 어떤 수 k와 그 음수인 -k가 모두 리스트 안에 존재하는 경우 중 가장 큰 k를 찾는 것이 이번 문제의 목표입니다. 만약 그러한 조건을 만족하는 원소가 하나도 없다면 -1을 반환해야 합니다.예를 들어, 입력이 [-5, 2, 9, -6, 5, -9]라면 9와 -9가 모두 존재하므로 정답은 9가 됩니다.해결 접근 방법이 문제는 양수와 음수를 분리한 뒤 정렬하여 비교하는 방식으로 효율적으로 풀 수 있습니다. 구체적인 풀이 단계는 다음과 같습니다.L1 := nums에서 0과 양수만

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:168/450  20-컴퓨터/Page Goto:1 162 163 164 165 166 167 168 169 170 171 172 173 174