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

Python

  1. Python에서 8진수의 10진수 표현이 7로 나누어 떨어지는지 확인하는 방법

    하나의 8진수(octal)가 주어졌을 때, 해당 수의 10진수 표현이 7로 나누어 떨어지는지 확인하는 문제를 살펴보겠습니다.예를 들어 입력이 n = 61이라면 결과는 True입니다. 8진수 61의 10진수 값은 6×8 + 1 = 48 + 1 = 49이며, 49는 7로 나누어 떨어지기 때문입니다.접근 방법이 문제는 8진법의 수학적 성질을 활용하면 매우 간단하게 해결할 수 있습니다. 8을 7로 나눈 나머지는 1이므로(8 ≡ 1 (mod 7)), 8진수 각 자릿수의 합을 7로 나눈 나머지는 원래 수를 7로 나눈 나머지와 같습니다. 이는

  2. Python으로 두 정사각형 면적의 차이가 소수인지 확인하는 방법

    두 개의 숫자 x와 y가 주어졌을 때, 두 수의 제곱(정사각형의 면적) 차이가 소수인지 확인해야 합니다.예를 들어 x = 7, y = 6이라고 가정해 보겠습니다. 두 정사각형의 면적은 각각 49와 36이며, 그 차이는 49 − 36 = 13입니다. 13은 소수이므로 결과는 True가 됩니다.접근 방법이 문제는 인수분해 공식을 활용하면 매우 효율적으로 해결할 수 있습니다. 두 정사각형 면적의 차이는 다음과 같이 분해됩니다.x² − y² = (x + y)(x − y)소수는 1과 자기 자신 외에 약수를 가질 수 없습니다. 따라서 위 곱셈

  3. Python으로 BST의 모든 내부 노드가 자식을 하나만 가지는지 확인하는 방법

    문제 개요이진 탐색 트리(BST)의 전위 순회(preorder traversal) 결과가 주어졌을 때, 트리의 모든 내부 노드가 자식을 정확히 하나만 가지고 있는지 확인하는 문제입니다.예를 들어, 입력이 preorder = [22, 12, 13, 15, 14]라면 출력은 True가 됩니다. 이 전위 순회에 해당하는 BST는 다음과 같습니다.접근 방법이 문제를 효율적으로 해결하려면 BST의 핵심 성질을 활용할 수 있습니다. 즉, 어떤 노드의 모든 자손(descendant)은 그 노드보다 작거나 큰 값이어야 한다는 점입니다. 이를 바탕

  4. 파이썬(Python)으로 n×n 행렬을 시계 방향 90도 회전하기

    문제 개요 n × n 크기의 2차원 행렬이 하나 주어졌다고 가정해 보겠습니다. 우리가 해야 할 일은 이 행렬을 시계 방향으로 90도 회전하는 것입니다. 예를 들어 다음과 같은 행렬이 있다면, 157963213 회전 후의 출력 결과는 다음과 같습니다. 291165337 핵심 아이디어 행렬을 시계 방향으로 90도 회전하면 원본 행렬의 각 열을 아래에서 위로 읽은 값이 회전된 행렬의 한 행이 된다는 규칙이 있습니다. 즉, 첫 번째 열의 맨 아래 값이 새 행렬의 첫 번째 행 첫 번째 값이 되는 식입니다. 이 규칙만 이해하면 코드 작성이 훨

  5. Python으로 실시간 환율 조회하기 – forex-python과 웹 API 활용 가이드

    Python은 API 호출을 처리하는 데 매우 뛰어난 언어입니다. 이 글에서는 Python을 활용해 실시간 환율뿐만 아니라 특정 시점의 과거 환율까지 손쉽게 조회하는 방법을 소개합니다.forex-python 라이브러리 사용하기forex-python 모듈은 환율 변환 정보를 가장 간단하고 직관적으로 가져올 수 있는 방법을 제공합니다. 통화 코드를 입력값으로 전달하면 해당 통화 간의 환율 변환 결과를 바로 받아볼 수 있습니다. 아래 예제는 현재 시점의 실시간 환율을 조회하는 코드입니다.예제 코드from forex_python.conve

  6. Python에서 HTML 지원하기: html.parser 모듈로 웹 문서 파싱하기

    Python에서 HTML 처리가 가능할까?네, 가능합니다. Python은 html.parser 모듈에 포함된 HTMLParser 클래스를 사용하여 HTML 파일을 처리할 수 있습니다. 이 클래스는 HTML 태그의 종류와 위치 등 다양한 속성을 감지할 수 있으며, HTML 파일 안에 담긴 데이터를 식별하고 추출하는 기능도 함께 제공합니다.커스텀 파서 클래스 만들기아래 예제에서는 HTMLParser 클래스를 상속받아 자신만의 커스텀 파서 클래스를 만드는 방법을 살펴봅니다. 이렇게 만든 파서는 클래스 안에서 정의한 태그와 데이터만 골라서

  7. Python mmap 모듈 활용법: 메모리 매핑 파일로 빠르게 읽고, 찾고, 쓰기

    파이썬 프로그램에서 파일 객체를 읽어 들인 후 내용을 수정하려면 크게 두 가지 방법이 있습니다. 첫 번째는 파일이 실제로 저장된 물리적 드라이브의 내용을 수정하는 방식이고, 두 번째는 시스템의 메모리(RAM)에 있는 데이터를 직접 수정하는 방식입니다. 이 글에서는 파이썬에서 기본 제공되는 mmap 모듈을 사용해 파일 객체를 읽고, 검색하고, 수정하는 방법을 살펴보겠습니다.일반적으로 파일을 다룰 때는 open, read, lseek 같은 시스템 호출을 반복해서 사용해야 하지만, 메모리 매핑(memory-mapping)은 파일 데이터를

  8. Python에서 특정 문자열·접미사가 목록의 문자열과 일치하는지 확인하는 방법

    데이터를 처리하다 보면 특정 단어나 문자열이 주어진 목록에 존재하는지 확인해야 하는 경우가 매우 자주 발생합니다. 이러한 확인 작업은 이후 비즈니스 로직을 처리하는 데 중요한 기초가 되며, 데이터 필터링이나 분류 작업의 전 단계로 활용됩니다. 이 글에서는 여러 개의 문자열로 이루어진 목록 안에 특정 문자열(예: 접미사)이 존재하는지 확인하는 다양한 방법을 예제와 함께 살펴보겠습니다.any() 함수 사용하기Python의 any() 함수는 반복 가능한 객체(iterable)의 요소 중 하나라도 조건을 만족하면 True를 반환하고, 하나

  9. Kivy로 만드는 Python 체크박스 UI: GridLayout과 CheckBox 활용법

    Kivy는 멀티터치 앱처럼 혁신적인 사용자 인터페이스를 갖춘 애플리케이션을 빠르게 개발할 수 있도록 도와주는 오픈 소스 Python 라이브러리입니다. 안드로이드 모바일 앱은 물론 데스크톱 애플리케이션 개발에도 폭넓게 사용되고 있습니다.GridLayout과 CheckBox 조합하기이번 글에서는 Kivy의 GridLayout과 CheckBox 위젯을 함께 사용하는 방법을 살펴보겠습니다.필요한 모듈을 임포트한 뒤, 2개의 열(column)을 가진 그리드 레이아웃을 생성합니다. 한 열에는 시간대를 표시하는 라벨(Label)을 배치하고, 다

  10. Python으로 중첩 딕셔너리를 평탄화하는 방법

    비정형 데이터가 세계적으로 널리 활용되면서, 중첩 JSON처럼 깊게 중첩된 구조의 데이터를 자주 마주하게 됩니다. Python은 내부 키와 외부 키를 연결해 데이터를 평탄화(flatten)하는 방식으로 이러한 중첩 데이터 구조를 손쉽게 처리할 수 있습니다. 이 글에서는 중첩 딕셔너리를 하나의 평평한 딕셔너리로 변환하는 방법을 살펴보겠습니다.재귀 함수를 활용한 방법이 방식은 딕셔너리의 각 항목을 재귀적으로 순회하며 처리하는 함수를 직접 설계합니다. 입력 딕셔너리와 함께 출력용 딕셔너리, 부모 키(parent key), 그리고 구분자(

  11. 파이썬으로 특정 범위 내 설정 비트(Set Bits) 개수 구하는 방법

    양의 정수를 이진수로 변환하면 값이 1인 비트들이 존재합니다. 이처럼 1로 표시되는 비트를 설정 비트(set bit)라고 부릅니다. 이 글에서는 주어진 숫자를 이진수로 변환한 뒤, 지정된 범위 안에 있는 설정 비트의 개수를 구하는 두 가지 방법을 살펴보겠습니다.방법 1: bin 함수와 슬라이싱 활용아래 예제에서는 먼저 bin() 함수를 사용해 숫자의 이진수 값을 얻습니다. 그다음 슬라이싱으로 이진수 변환 시 자동으로 붙는 0b 접두사를 제거하고, 문자열을 뒤집어 가장 오른쪽 비트부터 인덱스를 매깁니다. 마지막으로 range 함수를

  12. Python 딕셔너리에서 특정 키만 추출하는 방법

    딕셔너리(Dictionary)는 Python에서 가장 널리 사용되는 자료 구조 중 하나로, 데이터를 키(key)와 값(value)의 형태로 저장합니다. 실무에서는 전체 딕셔너리가 아니라 원하는 키에 해당하는 항목만 골라내야 하는 경우가 자주 발생하는데요. 이 글에서는 주어진 키 집합에 해당하는 항목만 딕셔너리에서 추출하는 다양한 방법을 예제와 함께 살펴보겠습니다.1. 딕셔너리 컴프리헨션 활용하기딕셔너리 컴프리헨션(dictionary comprehension)은 가장 간결하고 Python스러운 방식입니다. in 연산자와 함께 for

  13. 파이썬 print() 함수의 file 매개변수로 파일에 출력하는 방법

    print() 함수는 일반적으로 명령줄이나 파이썬 대화형 인터프리터에 텍스트를 화면에 표시하는 용도로 사용됩니다. 그러나 이 함수는 단순히 화면 출력에만 국한되지 않습니다. file 매개변수를 활용하면 동일한 print() 함수로 파일이나 출력 스트림에 직접 데이터를 기록할 수 있습니다. 파일에 출력하기 파일에 내용을 쓰려면 먼저 새 파일 이름으로 파일을 쓰기 모드(w)로 열어야 합니다. 이후 print() 함수의 file 매개변수에 해당 파일 객체를 지정하면, 출력 결과가 콘솔이 아닌 파일에 저장됩니다. 파일에 기록할 값들은 일반

  14. Kivy FloatLayout 완벽 가이드: 절대 위치와 상대 위치로 버튼 배치하기

    Kivy는 멀티터치 앱처럼 혁신적인 사용자 인터페이스를 갖춘 애플리케이션을 빠르게 개발할 수 있도록 도와주는 오픈소스 Python 라이브러리입니다. 안드로이드 앱은 물론 데스크톱 애플리케이션 개발에도 널리 활용됩니다. 이 글에서는 FloatLayout 위젯을 사용해 창(window) 안의 다양한 위치에 버튼을 배치하는 방법을 알아봅니다. 버튼의 위치는 부모 창을 기준으로 절대 좌표 또는 상대 좌표로 지정할 수 있습니다.1. 절대 위치(Absolute Position)로 배치하기이 방식은 버튼의 위치를 고정된 좌표로 설정합니다. 창

  15. Python 리스트에서 앞뒤 범위의 요소 삭제하기

    리스트 슬라이싱 활용이 방법은 리스트의 앞부분과 뒷부분 모두에서 슬라이싱(slicing)을 사용합니다. 잘라낸 결과는 새로운 리스트에 저장되며, 제거할 요소의 개수는 변수로 자유롭게 지정할 수 있습니다.예제listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] # 주어진 리스트 print("Given list : " ,listA) # 앞과 뒤에서 삭제할 요소의 개수 v = 2

  16. Python에서 pyqrcode 모듈로 QR 코드 생성하기

    QR 코드는 흰색 배경 위에 검은 사각형이 격자 형태로 배열된 2차원 바코드로, 카메라와 같은 이미징 장치를 통해 읽을 수 있습니다. 모바일 사용자를 대상으로 한 다양한 애플리케이션에서 널리 활용되고 있으며, 상업적 물류 추적, 결제, 웹사이트 로그인 등 여러 분야에서 사용됩니다.Python에서는 pyqrcode 모듈을 사용하여 손쉽게 QR 코드를 생성할 수 있습니다. QR 코드에는 데이터를 효율적으로 저장하기 위한 네 가지 표준 인코딩 방식(숫자형, 영숫자형, 바이트/바이너리형, 한자형)이 있습니다. 이 글에서는 그중 영숫자형과

  17. 파이썬에서 하위 배열 하나를 뒤집어 배열을 정렬할 수 있는지 확인하는 방법

    중복 없는 고유한 요소로 이루어진 배열 nums가 주어졌다고 가정해 보겠습니다. 이 배열에서 단 하나의 하위 배열(sub-array)만 뒤집어서 전체 배열을 오름차순으로 정렬할 수 있는지 확인해야 합니다. 배열이 이미 정렬되어 있다면 뒤집을 필요가 없으므로 역시 true를 반환합니다. 예를 들어 입력이 nums = [4,6,27,25,15,9,37,42]라고 해보겠습니다. 가운데 [9,15,25,27] 구간을 뒤집으면 [4,6,9,15,25,27,37,42]가 되어 배열 전체가 정렬되므로 출력은 True입니다. 문제 해결 접근 방법

  18. Python으로 빗변과 넓이가 주어졌을 때 직각삼각형 성립 여부 확인하기

    직각삼각형의 빗변(hypotenuse)과 넓이(area)가 주어졌을 때, 해당 조건을 만족하는 삼각형의 밑변(base)과 높이(height)를 구하는 문제입니다. 만약 주어진 값으로 직각삼각형을 만드는 것이 불가능하다면 False를 반환해야 합니다.예를 들어, 입력이 hypo = 10, area = 24라면 출력은 (6, 8)이 됩니다. 실제로 밑변이 6, 높이가 8인 삼각형은 빗변이 √(36 + 64) = 10이고 넓이는 0.5 × 6 × 8 = 24로 조건을 정확히 만족합니다.문제 해결 접근 방식핵심 아이디어는 다음과 같습니다.

  19. 파이썬(Python)으로 문자열이 패턴의 문자 순서를 따르는지 확인하는 방법

    문제 개요문자열 s와 패턴 역할을 하는 문자열 t가 주어졌을 때, s의 문자들이 t에 나타난 순서를 그대로 따르는지 확인하는 문제입니다. 이때 패턴 t에는 중복된 문자가 없다고 가정합니다.예를 들어 s = hello world, t = hw라고 해봅시다. h가 w보다 먼저 등장하므로 결과는 True입니다.풀이 접근 방법핵심 아이디어는 패턴의 인접한 두 문자 쌍(x, y)에 대해, 문자열 s 안에서 x의 마지막 등장 위치가 항상 y의 첫 등장 위치보다 앞서 있거나 같은지 검사하는 것입니다. 모든 인접 쌍이 이 조건을 만족하면 s는 패

  20. Python에서 두 문자열이 서로의 회전인지 확인하는 방법

    두 개의 문자열 s와 t가 주어졌을 때, t가 s를 회전(rotation)시킨 결과인지 판별하는 문제입니다. 문자열 회전이란 문자열의 일부를 앞에서 잘라 뒤로 붙여 만든 형태를 의미합니다.예를 들어 입력이 s = hello, t = llohe라면, hello를 두 글자 앞부분(he)을 잘라 뒤에 붙이면 llohe가 되므로 출력은 True입니다.해결 접근 방법이 문제는 아주 간단하고 우아한 트릭으로 해결할 수 있습니다. 핵심 아이디어는 다음과 같습니다.먼저 s와 t의 길이가 같은지 확인합니다. 길이가 다르면 회전일 수 없으므로 Fal

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