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

Python

  1. 파이썬 re.match() 함수 완벽 가이드 – 정규표현식 매칭 기초부터 예제까지

    re.match() 함수는 파이썬 re 모듈에서 제공하는 함수로, 정규 표현식(RE) 패턴이 문자열의 시작 부분과 일치하는지 검사합니다. 필요에 따라 플래그(flags)를 함께 지정하여 매칭 동작을 세부적으로 조정할 수 있습니다.참고로 re.match()는 문자열의 시작에서만 패턴을 찾는 반면, re.search()는 문자열 전체를 대상으로 패턴을 검색한다는 차이가 있습니다.문법(Syntax)이 함수의 기본 문법은 다음과 같습니다.re.match(pattern, string, flags=0)매개변수 설명번호매개변수 및 설명1patt

  2. 파이썬 re.search() 함수 완벽 정리 – 정규표현식으로 문자열 검색하기

    파이썬의 re.search() 함수는 정규표현식(RE) 패턴을 문자열에서 검색하여, 첫 번째로 일치하는 위치를 찾아주는 기능입니다. 선택적으로 플래그(flags)를 지정하여 검색 조건을 세부적으로 조절할 수도 있습니다.기본 문법re.search() 함수의 문법은 다음과 같습니다.re.search(pattern, string, flags=0)매개변수 설명번호매개변수 및 설명1pattern문자열에서 찾고자 하는 정규표현식 패턴입니다.2string패턴과 일치하는 내용이 있는지 검색할 대상 문자열입니다.3flags비트 OR 연산자(|)를

  3. 파이썬 정규표현식: match와 search의 차이 완벽 정리

    파이썬은 정규 표현식(regular expression)을 활용한 두 가지 기본 연산을 제공합니다. re.match() — 문자열의 맨 앞부분에서만 패턴이 일치하는지 검사합니다. re.search() — 문자열 어느 위치에서든 패턴이 일치하는지 검사합니다. 이는 Perl이 기본적으로 수행하는 방식과 동일합니다. 두 함수의 동작 차이는 실제 예제를 통해 더 명확하게 이해할 수 있습니다. 예제 코드 아래 예제에서는 동일한 문자열과 패턴(dogs)에 대해 match()와 search()를 각각 호출하여 그 결과를 비교합니다. se

  4. Python re.sub() 완벽 가이드: 정규표현식으로 문자열 검색하고 치환하기

    파이썬의 re 모듈에서 정규표현식을 활용하는 가장 중요한 메서드 중 하나가 바로 sub입니다. 이 메서드를 사용하면 문자열 안에서 특정 패턴과 일치하는 부분을 찾아 다른 문자열로 손쉽게 치환할 수 있습니다.문법(Syntax)re.sub(pattern, repl, string, max=0)re.sub()는 string 내에서 정규표현식 pattern과 일치하는 모든 부분을 repl로 교체합니다. max 값을 지정하면 해당 횟수만큼만 치환이 수행되고, 지정하지 않으면 일치하는 모든 항목이 한꺼번에 치환됩니다. 이 메서드는 수정된 새로운

  5. Python 정규 표현식 수정자(플래그) 완벽 가이드

    Python에서 정규 표현식을 사용할 때 수정자(modifier), 즉 플래그(flag)를 함께 지정하면 매칭 동작을 세밀하게 제어할 수 있습니다. 수정자는 선택적으로 붙이는 옵션 값으로, 여러 개를 동시에 사용하고 싶다면 배타적 OR 연산자인 |(파이프)로 조합하면 됩니다.예를 들어 대소문자 구분 없이 검색하면서 여러 줄 모드도 함께 적용하고 싶다면 re.I | re.M처럼 작성할 수 있습니다.Python 정규 표현식 주요 수정자 목록번호수정자 및 설명1re.I대소문자를 구분하지 않는 매칭(case-insensitive match

  6. Python 정규 표현식(Regex) 패턴 완벽 정리

    Python 정규 표현식 패턴 개요Python에서 정규 표현식(regular expression)은 문자열 검색, 치환, 유효성 검사 등에 활용되는 강력한 도구입니다. re 모듈을 통해 다양한 패턴 문법을 사용할 수 있습니다.특수 제어 문자인 ( + ? . * ^ $ ( ) [ ] { } | \ )를 제외한 모든 문자는 자기 자신과 일치합니다. 이러한 제어 문자를 문자 그대로 매칭하려면 앞에 백슬래시(\)를 붙여 이스케이프 처리하면 됩니다.아래 표는 Python에서 사용할 수 있는 주요 정규 표현식 문법을 정리한 것입니다.정규 표현

  7. 파이썬으로 풀어보는 '물이 가장 많이 담기는 용기' 문제

    음이 아닌 정수 n개(a₁, a₂, ..., aₙ)가 주어졌다고 가정해 보겠습니다. 각 값은 좌표 평면 위의 점 (i, a[i])을 나타내며, 이 점들을 통해 n개의 수직선이 만들어집니다. 여기서 i번째 수직선의 두 끝점은 각각 (i, a[i])와 (i, 0)입니다.우리의 목표는 이 수직선들 중 두 개를 선택해 x축과 함께 하나의 용기(컨테이너)를 형성할 때, 담을 수 있는 물의 양이 최대가 되는 두 개의 기둥을 찾는 것입니다.예를 들어 배열이 [1,8,6,2,5,4,8,3,7]이라면 다음 그림과 같이 표현할 수 있습니다.위 그림에

  8. 파이썬으로 풀는 3Sum 문제: 합이 0이 되는 세 숫자 조합 찾기

    숫자 배열이 주어졌을 때, 배열에 저장된 n개의 정수 중에서 세 원소 a, b, c를 골라 그 합이 a + b + c = 0이 되는 모든 고유한 조합(triplet)을 찾는 것이 이번 문제의 목표입니다.예를 들어 배열이 [-1, 0, 1, 2, -1, -4]와 같다면, 결과는 [[-1, -1, 2], [-1, 0, 1]]이 됩니다.해결 접근 방법이 문제는 정렬과 두 포인터(Two Pointers) 기법을 활용하면 O(n²) 시간 복잡도로 효율적으로 해결할 수 있습니다. 단계별로 살펴보겠습니다.배열 nums를 오름차순으로 정렬하고,

  9. 파이썬으로 전화 자판 숫자의 모든 문자 조합 구하기

    2부터 9까지의 숫자로만 이루어진 문자열이 주어졌다고 가정해 봅시다. 우리가 해야 할 일은 해당 숫자 조합이 나타낼 수 있는 모든 가능한 문자 조합을 반환하는 것입니다. 아래는 일반적인 전화기 자판을 기준으로 한 숫자와 문자의 매핑 표입니다. 참고로 숫자 1은 어떤 문자에도 매핑되지 않습니다.12a b c3d e f4g h i5j k l6m n o7p q r s8t u v9w x y z*0#문제 예시예를 들어 입력 문자열이 23이라면, 각 숫자에 대응하는 문자들을 조합하여 다음과 같은 결과를 얻을 수 있습니다.[ad, ae, af,

  10. 파이썬으로 연결 리스트 끝에서 N번째 노드 제거하기

    문제 개요연결 리스트(Linked List)가 하나 주어졌다고 가정해 보겠습니다. 우리가 해야 할 일은 리스트의 끝에서 N번째에 위치한 노드를 제거한 후, 수정된 리스트의 헤드(head)를 반환하는 것입니다.예를 들어, 리스트가 [1, 2, 3, 4, 5, 6]이고 n = 3이라면, 끝에서 세 번째 노드인 4가 제거되어 결과적으로 [1, 2, 3, 5, 6]이 반환됩니다.해결 접근 방식이 문제는 두 포인터(Two Pointers) 기법을 활용하면 리스트를 한 번만 순회하면서 효율적으로 해결할 수 있습니다. 앞서 나가는 포인터(fro

  11. 파이썬으로 유효한 괄호 조합 모두 생성하기

    값 n이 주어졌을 때, 여는 괄호와 닫는 괄호가 각각 n개씩 포함된 모든 유효한(well-formed) 괄호 조합을 생성해야 합니다. 예를 들어 n = 3이라면 다음과 같은 결과 집합이 만들어집니다.[()()(), ()(()), (())(), (()()), ((()))]문제 해결 접근 방식이 문제는 백트래킹(backtracking) 기법을 활용하면 효율적으로 해결할 수 있습니다. 핵심 아이디어는 문자열을 하나씩 확장해 가되, 어느 시점에서도 닫는 괄호의 개수가 여는 괄호보다 많아지지 않도록 제약을 거는 것입니다.구체적인 알고리즘은

  12. Python으로 회전 정렬 배열에서 타겟 값 검색하기

    문제 개요오름차순으로 정렬된 배열이 있고, 이 배열이 사전에 알 수 없는 어떤 피벗(pivot)을 기준으로 회전되었다고 가정해 보겠습니다. 예를 들어, [0,1,2,4,5,6,7] 배열은 [4,5,6,7,0,1,2]처럼 변형될 수 있습니다. 검색할 target 값이 주어지며, 배열에서 해당 값을 찾으면 그 인덱스를 반환하고, 찾지 못하면 -1을 반환해야 합니다. 배열에는 중복 요소가 존재하지 않는다고 가정합니다.예를 들어, 배열이 [4,5,6,7,8,0,1,2]이고 target이 0이라면, 0은 인덱스 5에 위치하므로 출력 결과는

  13. 파이썬으로 정렬된 배열에서 요소의 첫 번째와 마지막 위치 찾기

    정수로 이루어진 배열 A가 오름차순으로 정렬되어 있다고 가정해 봅시다. 이때 주어진 목표값(target)이 배열 안에서 처음 등장하는 위치와 마지막으로 등장하는 위치를 찾아야 합니다. 만약 목표값이 배열에 존재하지 않는다면 [-1, -1]을 반환하면 됩니다. 예를 들어 배열이 [2,2,2,3,4,4,4,4,5,5,6]이고 목표값이 4라면, 값 4는 인덱스 4부터 인덱스 7까지 연속해서 등장하므로 출력은 [4, 7]이 됩니다. 접근 방식: 두 번의 이분 탐색(Binary Search) 배열을 처음부터 끝까지 훑어보면 O(n)의 시간이

  14. 파이썬으로 유효한 스도쿠 보드 검증하기

    9×9 크기의 스도쿠 보드가 주어졌을 때, 그 보드가 유효한지 판별하는 문제를 살펴보겠습니다. 이때 검증 대상은 실제로 숫자가 채워진 칸뿐이며, 다음 세 가지 규칙을 모두 만족해야 합니다.각 행에는 1부터 9까지의 숫자가 중복 없이 포함되어야 합니다.각 열에는 1부터 9까지의 숫자가 중복 없이 포함되어야 합니다.격자를 나눈 9개의 3×3 서브 박스 각각에도 1부터 9까지의 숫자가 중복 없이 포함되어야 합니다.예를 들어 다음과 같은 스도쿠 격자가 주어졌다고 가정해 봅시다.53..7....6..195....98....6.8...6...

  15. C++에서 문자열로 표현된 두 수 곱하기

    두 개의 수가 문자열 형태로 주어져 있을 때, 이 두 수를 곱한 결과 역시 문자열 형태로 반환해야 합니다. 예를 들어 입력이 26과 12라면 결과는 312가 되어야 합니다.이런 문제가 필요한 이유는 숫자가 매우 커서 int나 long long 같은 기본 정수 자료형에 담을 수 없는 경우에도 곱셈을 수행할 수 있어야 하기 때문입니다. 학교에서 배운 세로셈법(일반적인 손곱셈)의 원리를 그대로 코드로 옮기면 해결할 수 있습니다.해결 접근 방식두 개의 문자열 num1과 num2를 인자로 받습니다.곱셈 결과의 길이는 최대 n + m(n, m

  16. 파이썬으로 순열(Permutation) 구현하기: 재귀와 백트래킹 완벽 가이드

    순열(Permutation)이란?서로 다른 정수들로 이루어진 집합이 주어졌을 때, 만들 수 있는 모든 순열을 구하는 문제를 생각해 보겠습니다. 예를 들어 배열이 [2, 1, 3]이라면, 세 개의 원소를 나열할 수 있는 모든 경우의 수인 다음과 같은 결과를 얻게 됩니다.[[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]원소가 n개일 때 순열의 총 개수는 n!개입니다. 따라서 위 예시에서는 3! = 6가지의 순열이 생성됩니다.해결 접근 방식이 문제는 재귀(recursion)와 백트래킹(ba

  17. Python으로 2D 행렬 이미지 시계 방향 90도 회전하기

    문제 설명하나의 이미지를 나타내는 2차원(2D) 행렬이 있다고 가정해 보겠습니다. 우리가 해야 할 작업은 이 이미지를 시계 방향으로 90도 회전하는 것입니다.예를 들어, 다음과 같은 이미지가 있다면:157963213회전 후의 결과는 다음과 같습니다.291165337해결 접근 방법시계 방향 90도 회전의 핵심 원리는 간단합니다. 회전된 행렬의 첫 번째 열은 원본 행렬의 마지막 행과 같다는 점을 이용하는 것입니다. 이를 단계별로 정리하면 다음과 같습니다.임시 리스트 temp_mat = []를 준비하고, 열 인덱스를 나타낼 변수를 설정합

  18. 파이썬(Python)으로 그룹 애너그램(Group Anagrams) 문제 풀기

    그룹 애너그램이란?애너그램(Anagram)은 같은 문자들로 구성되어 있지만 순서가 다른 문자열을 의미합니다. 예를 들어 eat, tea, ate는 모두 같은 글자(e, a, t)로 이루어져 있으므로 서로 애너그램 관계입니다.이번 문제에서는 주어진 문자열 배열에서 서로 애너그램인 문자열들을 하나의 그룹으로 묶어야 합니다.문제 예시입력이 [eat, tea, tan, ate, nat, bat]라면, 다음과 같이 세 개의 그룹으로 나뉩니다.[ate, eat, tea] — e, a, t로 구성[nat, tan] — n, a, t로 구성[ba

  19. 파이썬으로 Pow(x, n) 구현하기 – 라이브러리 없이 거듭제곱 계산하는 방법

    두 개의 입력값 x와 n이 주어집니다. 여기서 x는 -100.0부터 100.0 사이의 실수이고, n은 32비트 부호 있는 정수입니다. 이때 라이브러리 함수를 사용하지 않고 x의 n제곱(xⁿ)을 직접 계산해야 합니다.예를 들어 x = 12.1, n = -2가 입력으로 주어지면 결과는 0.00683이 됩니다.문제 해결 접근 방법이 문제는 빠른 거듭제곱(Exponentiation by Squaring) 기법을 활용하면 효율적으로 해결할 수 있습니다. 지수를 이진수로 보고 비트 연산을 활용하면 단순 반복 곱셈보다 훨씬 적은 연산 횟수로 답

  20. Python으로 색상 정렬 문제 해결하기: 네덜란드 국기 알고리즘 완벽 가이드

    문제 개요n개의 객체로 이루어진 배열이 있고, 각 객체는 빨강(0), 흰색(1), 파랑(2) 중 하나의 색으로 표현된다고 가정해 보겠습니다. 이때 같은 색상의 객체들이 서로 인접하도록 배열을 제자리(in-place)에서 정렬해야 하며, 색상의 순서는 반드시 빨강 → 흰색 → 파랑 순이어야 합니다.예를 들어 입력 배열이 [2,0,2,1,1,0]이라면, 정렬 결과는 [0,0,1,1,2,2]가 됩니다.접근 방법: 네덜란드 국기 알고리즘이 문제는 세 개의 포인터(low, mid, high)를 활용하는 네덜란드 국기(Dutch Nationa

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:128/450  20-컴퓨터/Page Goto:1 122 123 124 125 126 127 128 129 130 131 132 133 134