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

Python

  1. 연속된 1이 없는 이진 문자열의 개수를 세는 파이썬 프로그램

    이 글에서는 아래와 같은 문제에 대한 해결 방법을 자세히 알아보겠습니다. 문제 정의 문제: 양의 정수 N이 주어졌을 때, 길이가 N인 모든 이진 문자열 중에서 연속된 두 개의 1이 나타나지 않는 문자열의 개수를 구해야 합니다. 예를 들어 N=3이라면, 가능한 조합은 000, 001, 010, 100, 101로 총 5가지입니다. 반면 011, 110, 111은 연속된 1을 포함하고 있으므로 제외됩니다. 접근 방식: 동적 계획법(DP) 이 문제는 피보나치 수열과 밀접한 관련이 있으며, 동적 계획법을 활용하면 효율적으로 해결할 수 있습니

  2. Python으로 정수의 세트 비트(Set Bit) 개수 세는 방법

    이 글에서는 정수의 이진수 표현에서 1로 설정된 비트, 즉 세트 비트(set bit)의 개수를 세는 Python 프로그램을 다양한 방법으로 구현해 보겠습니다. 문제 정의 정수 n이 주어졌을 때, 해당 숫자를 이진수로 변환했을 때 나타나는 1의 개수를 구하는 것이 목표입니다. 예를 들어, n = 15인 경우 이진수 표현은 1111이므로 세트 비트의 개수는 4가 됩니다. 방법 1: 반복문을 사용한 기본 접근법 가장 직관적인 방법은 숫자를 오른쪽으로 한 비트씩 시프트하면서 마지막 비트가 1인지 확인하는 것입니다. # 비트 개수 세기 de

  3. 파이썬으로 숫자 팩토리얼의 후행 0 개수 세기

    이 글에서는 주어진 문제 상황에 대한 해결 방법을 자세히 알아보겠습니다. 문제 정의 문제 — 정수 n이 주어졌을 때, n! (팩토리얼) 값의 끝에 연속해서 나타나는 0의 개수를 구해야 합니다. 예를 들어 5! = 120이므로 후행 0은 1개이고, 10! = 3628800이므로 후행 0은 2개입니다. 접근 방법 팩토리얼 값의 뒤에 붙는 0은 곱셈 과정에서 2와 5가 한 쌍씩 만날 때마다 생성됩니다. 팩토리얼 계산에서 2의 개수는 항상 5의 개수보다 많기 때문에, 후행 0의 개수는 결국 약수 중 5의 개수와 같습니다. 따라서 다음과 같

  4. 파이썬으로 리스트의 누적 합계 구하기 – 초보자를 위한 단계별 가이드

    이 글에서는 리스트가 주어졌을 때 각 요소까지의 누적 합계(cumulative sum)를 계산하여 새로운 리스트를 만드는 파이썬 프로그램 작성 방법을 알아보겠습니다.문제 정의문제: 숫자로 이루어진 리스트가 주어지면, 앞선 모든 요소의 합을 순차적으로 누적한 값을 담은 새로운 리스트를 생성해야 합니다.예를 들어 [10, 20, 30, 40, 50]이라는 리스트가 있다면, 결과는 [10, 30, 60, 100, 150]이 됩니다. 각 위치의 값은 원본 리스트의 해당 요소까지의 합계입니다.구현 예제# 누적 합계 함수 def Cumulat

  5. 파이썬으로 함수 내 지역 변수 개수 확인하기

    이 글에서는 함수에 정의된 지역 변수의 개수를 구하는 방법을 알아보겠습니다.문제 정의하나의 함수가 주어졌을 때, 해당 함수 내부에 선언된 지역 변수(local variable)의 개수를 화면에 출력해야 합니다.파이썬에서는 코드 객체(code object)가 제공하는 co_nlocals 속성을 사용하면 이 문제를 아주 간단하게 해결할 수 있습니다. co_nlocals는 함수가 사용하는 지역 변수의 총개수를 정수 값으로 반환합니다.예제 1: 기본적인 사용법# 지역 변수 개수 확인 def scope(): a = 25.5 b

  6. 파이썬으로 두 문자열에서 흔하지 않은 단어 찾기

    이번 글에서는 두 개의 문자열이 주어졌을 때, 한쪽에만 등장하는 단어 즉 흔하지 않은 단어(uncommon words)를 찾는 파이썬 프로그램 작성 방법을 알아보겠습니다. 문제 정의 문제: 두 개의 문자열 A와 B가 주어집니다. 이때 두 문자열 중 오직 한 곳에만 등장하는 단어들을 모두 추출해야 합니다. 예를 들어 Tutorials point와 Python on Tutorials point가 주어진다면, 결과는 [Python, on]이 되어야 합니다. 접근 방법 이 문제를 해결하는 가장 간단하고 효율적인 방법은 딕셔너리(dict

  7. 파이썬으로 주어진 문자열의 모든 순열 출력하기

    이 글에서는 아래에 제시된 문제에 대한 해결 방법을 자세히 알아보겠습니다.문제 정의하나의 문자열이 주어졌을 때, 그 문자열의 문자들을 재배치하여 만들 수 있는 모든 순열(permutation)을 출력하는 프로그램을 작성해야 합니다. 예를 들어 TUT라는 문자열이 주어지면 TUT, TTU, UTT 등 가능한 모든 조합을 화면에 표시해야 합니다.그럼 이제 아래 구현 예시를 통해 해결 방법을 살펴보겠습니다.구현 예시# 문자 리스트를 문자열로 변환 def toString(List): return .join(List) # 순열 생성

  8. Python uuid3()과 uuid5()로 해시 기반 고유 ID 생성하기

    UUID(범용 고유 식별자)는 주어진 네임스페이스 안에서 값의 고유성을 보장할 수 있는 128비트 숫자로, 일반적으로 32자리 16진수 형태로 표현됩니다. 프로그램에서 생성한 객체를 추적하거나, Python이 대규모 식별자가 필요한 객체나 데이터를 다뤄야 할 때 매우 유용합니다. Python의 uuid 모듈은 이러한 값을 손쉽게 생성할 수 있는 다양한 함수를 제공하며, 그중 uuid3()와 uuid5()는 해시 알고리즘을 기반으로 결정론적(deterministic) UUID를 만듭니다.기본 문법uuid3(namespace, stri

  9. Python global 키워드 완벽 가이드 – 전역 변수 선언과 활용 방법

    Python으로 프로그래밍하다 보면 변수를 선언한 후, 그 변수를 현재 스코프(유효 범위)가 아닌 프로그램의 다른 영역에서 수정하거나 참조해야 하는 경우가 자주 발생합니다. 이럴 때 사용하는 것이 바로 global 키워드입니다. 함수 내부에서 변수 앞에 global을 붙여 선언하면 해당 변수를 전역 범위(global scope)에서 다룰 수 있습니다. 반대로 변수가 함수 밖에 선언되어 있다면, 별도의 선언 없이도 자동으로 전역 변수로 취급됩니다. 함수 외부에 선언된 변수 아래 예제는 값이 함수 바깥에 선언되어 있지만, 함수 내부에서

  10. 파이썬(Python)의 역사: 창시자부터 파이썬 3까지의 발전 과정

    파이썬은 2010년대에 폭발적인 인기를 얻은 오픈 소스 프로그래밍 언어입니다. 데이터 분석, 데이터 처리, 웹 개발 등 다양한 소프트웨어 분야에서 선호되는 언어로 자리 잡았다는 점은 파이썬 특유의 유연성을 잘 보여줍니다. 실제로 2015년 이후 주요 산업 조사에서 꾸준히 상위 5위권 프로그래밍 언어로 선정되어 왔습니다.파이썬의 창시자파이썬은 네덜란드 출신 프로그래머 귀도 반 로섬(Guido van Rossum)이 만들었습니다. 그는 2018년 7월 사임할 때까지 파이썬 커뮤니티의 자비로운 종신 독재자(BDFL, Benevolent

  11. 파이썬에서 변수에 값을 할당하는 다양한 방법

    변수 할당은 모든 프로그래밍 언어에서 가장 기본적이면서 필수적인 작업입니다. 파이썬에서는 변수를 선언하고 값을 할당하는 방법이 여러 가지 있으며, 상황에 따라 적합한 방식이 다릅니다. 이번 글에서는 대표적인 할당 방법들을 예제 코드와 함께 하나씩 살펴보겠습니다.1. 직접 초기화(Direct Initialisation)가장 기본적인 방법으로, 등호(=) 기호를 사용하여 변수를 직접 선언하고 값을 할당합니다. 참고로 동일한 변수가 여러 번 선언되면, 프로그램은 마지막에 선언된 값을 기준으로 동작합니다.예제x = 5 x = 9 print

  12. Python html5lib vs lxml 파서 완벽 비교: 동작 차이와 선택 기준

    html5lib란 무엇인가?html5lib는 HTML을 파싱하기 위한 순수 Python 라이브러리입니다. 모든 주요 웹 브라우저가 채택한 WHATWG HTML 표준 사양을 준수하도록 설계되었으며, 브라우저와 동일한 방식으로 텍스트를 해석한다는 점이 가장 큰 특징입니다.HTML 문서의 거의 모든 요소를 파싱하여 다양한 태그와 조각으로 분해할 수 있고, 용도에 따라 원하는 부분만 필터링해서 활용할 수 있습니다. 또한 깨지거나 불완전한 HTML 태그도 관대하게 처리하며, 문서 구조를 완성하기 위해 필요한 태그를 자동으로 추가해 줍니다.

  13. 파이썬 Pandas 부울 인덱싱: True/False 값으로 데이터 필터링하기

    True와 False, 그리고 1과 0과 같은 불리언(Boolean) 값은 판다스(Pandas) 데이터프레임에서 인덱스로 직접 사용할 수 있습니다. 이를 활용하면 원하는 레코드만 손쉽게 필터링할 수 있습니다. 이 글에서는 부울 인덱싱을 수행하는 다양한 방법을 예제와 함께 살펴보겠습니다.부울 인덱스 생성하기먼저 게임 데이터를 담은 데이터프레임을 생각해 보겠습니다. 요일별로 획득한 점수가 딕셔너리 형태로 저장되어 있습니다. 여기에 True와 False를 인덱스 값으로 지정하여 데이터프레임을 생성하고, 최종 결과를 출력해 보겠습니다.예제

  14. 파이썬 객체 비교: 'is' 연산자 vs '==' 연산자 차이 완벽 정리

    파이썬에서 객체를 비교할 때 사용하는 두 가지 방법, 즉 is 연산자와 동등 비교 연산자 ==의 차이점에 대해 알아보겠습니다. 동등 연산자(==)는 인자로 전달된 객체의 값을 기준으로 비교하는 반면, is 연산자는 두 객체의 참조(메모리 주소)가 같은지를 비교합니다. 즉, 동등 연산자는 참조 위치와 상관없이 내용만 비교합니다. 서로 다른 메모리 위치에 저장되어 있어도 내용이 같다면 동일한 것으로 판단하여 True를 반환합니다. 반면 is 연산자는 참조가 최우선 기준이므로, 내용이 같더라도 메모리상 서로 다른 객체라면 False를 반

  15. Python으로 두 숫자의 공약수 구하기 – 초보자를 위한 완벽 가이드

    이 글에서는 두 숫자의 공약수(공통 약수)를 구하는 파이썬 프로그램에 대해 자세히 알아보겠습니다. 문제 정의 문제: 두 개의 정수가 주어졌을 때, 두 수의 공약수를 모두 찾아야 합니다. 예를 들어 5와 45가 주어지면, 두 수를 모두 나누어 떨어지게 하는 수는 1과 5이므로 공약수는 총 2개입니다. 접근 방법 가장 직관적인 방법은 다음과 같습니다. 입력받은 두 수 중 더 작은 값을 구합니다. (min() 함수 활용) 1부터 그 최솟값까지 차례대로 반복하면서, 각 값이 두 수를 모두 나누어 떨어지게 하는지 확인합니다. 조건이 참

  16. Python으로 주어진 숫자의 모든 소인수 출력하기 – 효율적인 알고리즘 완벽 가이드

    이 글에서는 아래의 문제 상황에 대한 해결 방법을 알아보겠습니다. 문제 정의 하나의 숫자 n이 주어졌을 때, 이 숫자의 모든 소인수(prime factor)를 찾아 출력하는 것이 목표입니다. 예를 들어 200이 입력되면 200 = 2 × 2 × 2 × 5 × 5이므로 2, 2, 2, 5, 5를 차례로 출력해야 합니다. 효율적인 접근 방법 2부터 n까지 모든 수를 일일이 나누어 보는 비효율적인 방식 대신, 다음 세 단계로 최적화하면 시간 복잡도를 O(√n)까지 줄일 수 있습니다. 2로 반복해서 나누기: n이 짝수인 동안 계속 2

  17. Python으로 숫자의 짝수 약수의 합 구하는 방법

    이 글에서는 아래와 같은 문제 상황에 대한 해결 방법을 알아보겠습니다.문제 정의 − 하나의 숫자 n이 주어졌을 때, 해당 숫자의 모든 짝수 약수(even factor)의 합을 구하여 출력해야 합니다.접근 방법먼저 주어진 수가 홀수인지 확인합니다. 홀수라면 짝수 약수가 존재할 수 없으므로 즉시 0을 반환합니다.숫자가 짝수라면 본격적인 계산을 진행합니다. 약수의 합 공식에서 20(즉 1)에 해당하는 항을 제외한 나머지 항들을 곱하면 곧 짝수 약수의 합이 됩니다.즉, 짝수 약수 목록에서 홀수 성분을 걷어내려면 20 = 1인 항을 무시하면

  18. 파이썬으로 피보나치 수열에서 숫자의 n번째 배수 위치 찾기

    이 글에서는 다음 문제에 대한 해결 방법을 살펴봅니다. 문제 정의 숫자 k와 정수 n이 주어졌을 때, 피보나치 수열에서 k의 n번째 배수가 등장하는 위치(항 번호)를 구하는 것이 목표입니다.예를 들어 k=4, n=5라면, 피보나치 수열에서 4의 배수에 해당하는 항들 가운데 다섯 번째 값이 몇 번째 항에 위치하는지 찾아야 합니다. 접근 방법 피보나치 수열의 중요한 성질 중 하나는 Fm이 Fn을 나누려면 m이 n의 약수여야 한다는 점입니다. 이 성질을 활용하면 문제를 다음과 같이 단순화할 수 있습니다. 먼저 반복문으로 피보나치 수를 하

  19. 주어진 범위에서 약수의 개수가 홀수인 요소 개수 구하기 – 파이썬 프로그램

    이 글에서는 주어진 범위 안에서 약수의 개수가 홀수인 요소가 몇 개 있는지 구하는 방법을 알아보겠습니다.문제 정의두 수 n과 m으로 이루어진 범위가 주어졌을 때, 해당 범위 내에서 약수의 개수가 홀수인 숫자가 총 몇 개인지 구하는 것이 목표입니다.접근 방법수학적으로 잘 알려진 사실 중 하나는 완전제곱수만이 약수의 개수가 홀수라는 점입니다. 일반적인 수는 약수가 쌍을 이루기 때문에 약수의 개수가 항상 짝수이지만, 완전제곱수는 제곱근 자신이 추가적인 약수가 되어 홀수 개의 약수를 가지게 됩니다.따라서 이 문제는 범위 [n, m] 안에

  20. 파이썬으로 주어진 문자열이 키워드(예약어)인지 확인하는 방법

    개요이 글에서는 파이썬에서 주어진 문자열이 키워드(keyword)인지 확인하는 방법과 그 해결 과정을 자세히 알아보겠습니다.문제 정의하나의 문자열이 입력으로 주어졌을 때, 해당 문자열이 파이썬의 예약어(키워드)인지 아닌지를 판별하는 프로그램을 작성해야 합니다.키워드란 프로그래밍 언어가 문법적으로 특정 용도를 위해 미리 예약해 둔 특수 단어를 의미합니다. 따라서 키워드는 변수명이나 함수명과 같은 식별자(identifier)로 사용할 수 없습니다. 예를 들어 if, for, while, def, class, or 등이 대표적인 파이썬

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:113/450  20-컴퓨터/Page Goto:1 107 108 109 110 111 112 113 114 115 116 117 118 119