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

Python

  1. Python 리스트에서 대체 요소(홀수 인덱스) 추출하는 2가지 방법

    이 글에서는 Python 리스트에서 대체 요소(alternate elements)를 추출하는 방법을 알아봅니다. 문제를 해결할 수 있는 두 가지 서로 다른 방법을 예제 코드와 함께 소개합니다. 방법 1: 리스트 컴프리헨션 활용 첫 번째 방법은 리스트 컴프리헨션(list comprehension)과 인덱스 조건을 활용하는 것입니다. 아래 단계를 따라 해결할 수 있습니다. 리스트를 초기화합니다. 리스트를 순회하면서 홀수 인덱스에 해당하는 모든 요소를 저장합니다. 결과를 출력합니다. 예제 코드를 확인해 보겠습니다. # 리스트 초기

  2. Python 리스트와 튜플에서 선형 검색(Linear Search) 구현하는 방법

    이 글에서는 Python의 리스트(list)와 튜플(tuple)에 선형 검색(linear search)을 적용하는 방법을 알아보겠습니다.선형 검색은 자료 구조의 첫 번째 요소부터 시작하여 마지막 요소까지 순차적으로 탐색하는 가장 기본적인 검색 알고리즘입니다. 찾고자 하는 요소를 발견하면 그 즉시 탐색을 중단합니다.선형 검색의 동작 원리선형 검색은 다음과 같은 방식으로 작동합니다.첫 번째 요소부터 검색을 시작합니다.각 요소를 하나씩 순서대로 확인합니다.찾는 값과 일치하는 요소를 만나면 즉시 검색을 종료합니다.끝까지 탐색해도 일치하는

  3. 파이썬 ldexp() 함수 완벽 가이드: 개념부터 활용 예제까지

    이 글에서는 파이썬 math 라이브러리에 포함된 ldexp() 함수의 사용법을 자세히 알아봅니다. ldexp() 함수란? ldexp(first, second) 함수는 두 개의 유효한 숫자(양수 또는 음수)를 인자로 받아 first × (2 ** second) 연산 결과를 반환합니다. 즉, 첫 번째 인자에 2의 거듭제곱을 곱한 값을 계산하는 함수입니다. 이 함수는 부동소수점 연산이나 비트 단위의 수치 조작이 필요할 때 유용하게 사용됩니다. 구체적인 예제를 통해 살펴보겠습니다. 사용 예제 # math 라이브러리 임포트 import ma

  4. Python 리스트에서 특정 요소의 마지막 등장 위치 찾기

    이 글에서는 Python 리스트에서 특정 요소가 마지막으로 등장하는 위치(인덱스)를 찾는 다양한 방법을 알아보겠습니다.리스트에 동일한 요소가 여러 번 포함되어 있을 때, index() 메서드는 항상 첫 번째 위치만 반환하기 때문에 마지막 등장 위치를 찾으려면 약간의 트릭이 필요합니다. 가장 직관적인 방법은 리스트를 뒤집은 후 인덱스를 찾고, 이를 원래 인덱스로 변환하는 것입니다.방법 1: 리스트를 뒤집어서 찾기주어진 리스트를 역순으로 뒤집은 다음 요소의 위치를 찾는 방법입니다. 아래 단계를 따라 코드를 작성해 보세요.리스트를 초기화

  5. Python - 주어진 숫자 목록으로 만들 수 있는 가장 큰 숫자 찾기

    이 글에서는 주어진 숫자 목록의 순서를 조합하여 만들 수 있는 가장 큰 숫자를 찾는 방법을 알아봅니다. 문제를 해결하는 두 가지 방법을 단계별로 소개하겠습니다.방법 1: itertools 순열(permutations) 활용첫 번째 방법은 모든 순열을 생성한 뒤 그중 최댓값을 찾는 방식입니다. 다음 단계를 따라 해결할 수 있습니다.순열(permutations) 메서드를 사용하기 위해 itertools 모듈을 임포트합니다.숫자 목록과 결과를 담을 빈 리스트를 초기화합니다.목록의 모든 순열을 순회하면서 각 조합을 문자열로 연결해 결과 리

  6. 파이썬(Python)에서 유니코드 리스트 요소를 결합하는 방법

    개요 이 글에서는 파이썬(Python)에서 리스트의 각 요소를 유니코드로 변환한 뒤, 이를 다시 하나의 문자열로 결합하는 방법을 알아봅니다. map, encode, decode, join 메서드만 활용하면 몇 줄의 코드로 손쉽게 처리할 수 있습니다. 처리 순서 리스트를 초기화합니다. map 함수와 string.encode() 메서드를 사용해 모든 요소를 유니코드 바이트로 변환합니다. decode() 메서드로 인코딩된 각 바이트를 다시 문자열로 복원합니다. join() 메서드를 사용해 문자열들을 하나로 연결합니다. 결과를 출력합니다

  7. 파이썬 리스트에서 인접한 단어만 결합하는 방법

    이 글에서는 파이썬 리스트에 있는 요소 중 숫자가 아닌 인접한 단어들만 결합하는 방법을 알아봅니다. 문자열 요소들은 하나로 합치고, 숫자 요소들은 그대로 뒤에 배치하는 것이 핵심입니다.문제 해결 접근 방식리스트를 초기화합니다.isalpha() 메서드를 사용해 숫자가 아닌 단어(문자열)를 찾습니다.join() 메서드로 찾은 단어들을 하나로 결합합니다.isdigit() 메서드로 숫자 요소를 찾아 결과의 끝에 추가합니다.최종 결과를 출력합니다.예제 1: 리스트 컴프리헨션 활용# 리스트 초기화 strings = [Tutorials, 56,

  8. Python – 리스트 안의 튜플 요소를 하나의 문자열로 합치는 방법

    이 글에서는 리스트에 담긴 튜플 요소들을 하나의 문자열로 합치는 방법을 알아보겠습니다. 파이썬의 join과 map 메서드를 활용하면 아주 간단하게 처리할 수 있습니다. 아래 단계를 순서대로 따라 해 보세요.문자열을 포함하는 튜플들로 이루어진 리스트를 초기화합니다.튜플을 인자로 받아 문자열을 반환하는 함수 join_tuple_string을 작성합니다.map(join_tuple_string, list) 메서드를 사용해 리스트 안의 모든 튜플을 합칩니다.결과를 리스트로 변환합니다.변환된 결과를 출력합니다.예제 코드 str: ret

  9. Python으로 두 문자열의 교집합(공통 문자) 구하는 방법

    이 글에서는 파이썬(Python)에서 두 문자열의 교집합, 즉 양쪽 문자열에 모두 포함된 공통 문자를 추출하는 다양한 방법을 알아봅니다.가장 기본적인 반복문 방식부터 파이썬다운 set(집합)을 활용하는 방식까지 단계별로 살펴보겠습니다.방법 1: 반복문을 이용한 구현반복문을 사용해 두 문자열의 공통 문자를 찾는 절차는 다음과 같습니다.두 개의 문자열과 결과를 담을 빈 문자열을 초기화합니다.첫 번째 문자열을 순회하면서, 현재 문자가 두 번째 문자열에도 존재하고 아직 결과 문자열에 없다면 추가합니다.최종 결과를 출력합니다.예제 코드# 문

  10. Python - 중첩 리스트 간의 교집합 구하는 방법

    이 글에서는 여러 개의 리스트를 포함하는 두 개의 리스트(중첩 리스트) 사이의 교집합을 다양한 방법으로 구하는 방법을 알아보겠습니다. 먼저 가장 전통적인 방법부터 시작해 보겠습니다.방법 1: 리스트 컴프리헨션 활용다음 단계를 따라 문제를 해결할 수 있습니다.여러 개의 리스트를 포함하는 두 개의 리스트를 초기화합니다.첫 번째 리스트를 순회하면서, 현재 항목이 두 번째 리스트에도 존재하는 경우 새로운 리스트에 추가합니다.결과를 출력합니다.예제 코드# 리스트 초기화 list_1 = [[1, 2], [3, 4], [5, 6]] list_2

  11. 파이썬(Python)에서 키를 활용해 두 딕셔너리 교집합 구하기

    이 글에서는 파이썬에서 키(key)를 기준으로 두 딕셔너리의 교집합을 구하는 방법을 알아봅니다. 목표는 두 딕셔너리에 공통으로 존재하는 키만 담은 새로운 딕셔너리를 만드는 것입니다. 먼저 예시로 살펴보겠습니다.입력: dict_1 = {A: 1, B: 2, C: 3} dict_2 = {A: 1, C: 4, D: 5} 출력: {A: 1, C: 3}방법 1: 딕셔너리 컴프리헨션 활용가장 일반적이고 가독성이 좋은 방법은 딕셔너리 컴프리헨션(dictionary comprehension)을 사용하는 것입니다. 아래 단계를 따라 코드를 작성해

  12. Python - 정렬된 리스트에 항목을 순서를 유지하며 삽입하는 방법

    이 글에서는 정렬된 리스트에 새로운 항목을 삽입하면서 기존의 정렬 순서를 그대로 유지하는 방법을 알아보겠습니다. 파이썬에는 bisect라는 내장 모듈이 있어, 리스트의 적절한 위치에 요소를 손쉽게 삽입할 수 있습니다. 구현 단계 bisect 모듈을 임포트합니다. 대상 리스트와 삽입할 요소를 초기화합니다. bisect 모듈에는 요소를 리스트의 알맞은 위치에 자동으로 삽입해 주는 insort 메서드가 포함되어 있습니다. 이 메서드를 사용해 요소를 삽입합니다. 결과 리스트를 출력합니다. 예제 코드 # 모듈 임포트 import bise

  13. Python으로 로그 저장 시스템 설계하기

    문제 개요각 로그에는 고유한 ID와 타임스탬프가 포함되어 있다고 가정해 보겠습니다. 타임스탬프는 년:월:일:시:분:초 형식의 문자열이며, 예를 들어 2019:01:01:23:59:59처럼 표현됩니다. 모든 필드는 0으로 채워진(zero-padded) 10진수입니다.이제 다음 두 가지 기능을 제공하는 로그 저장 시스템을 설계해야 합니다.void Put(int id, string timestamp): 로그의 고유 ID와 타임스탬프를 전달받아 저장소에 보관합니다.int[] Retrieve(String start, String end, S

  14. 파이썬(Python)으로 스카이라인을 유지하며 건물 높이 최대로 늘리기

    문제 소개2차원 배열 grid가 주어져 있다고 가정해 보겠습니다. 각 값 grid[i][j]는 해당 위치에 있는 건물의 높이를 나타냅니다. 우리는 임의의 건물 높이를 원하는 만큼 자유롭게 높일 수 있으며, 높이 0 역시 하나의 건물로 간주합니다.단, 한 가지 중요한 조건이 있습니다. 그리드의 네 방향(위, 아래, 왼쪽, 오른쪽)에서 바라볼 때의 스카이라인은 반드시 원래 그리드의 스카이라인과 동일하게 유지되어야 합니다. 도시의 스카이라인이란 멀리서 바라볼 때 모든 건물들이 만들어 내는 직사각형들의 외곽 윤곽선을 의미하기 때문입니다.

  15. Python으로 이진 탐색 트리(BST) 직렬화 및 역직렬화 구현하기

    개요이진 탐색 트리(Binary Search Tree, BST)를 직렬화하고 역직렬화하는 알고리즘을 설계해 보겠습니다. 직렬화(Serialization)란 데이터 구조나 객체 같은 것을 비트 열로 변환하여 파일이나 메모리 버퍼에 저장하거나 네트워크 연결을 통해 전송할 수 있도록 만드는 과정입니다. 반대로 직렬화된 데이터를 나중에 원래의 구조로 복원하는 과정을 역직렬화(Deserialization)라고 합니다.예를 들어 입력이 [5,2,9,1,3,7]이라면 다음과 같은 결과가 나옵니다.직렬화 결과: 5.2.9.1.3.7.N.N.N.N

  16. 파이썬으로 풀어보는 캠퍼스 자전거 배정 문제 (Campus Bikes II)

    문제 소개하나의 2차원 격자(grid)가 캠퍼스를 나타낸다고 가정해 보겠습니다. 이 캠퍼스에는 N명의 워커(worker)와 M대의 자전거(bike)가 있으며, N ≤ M 조건이 성립합니다. 각 워커와 자전거는 격자 위의 2차원 좌표에 위치해 있습니다.우리의 목표는 각 워커에게 서로 다른 자전거를 하나씩 배정하되, 모든 워커와 배정된 자전거 사이의 맨해튼 거리(Manhattan Distance) 합이 최소가 되도록 하는 것입니다.두 점 p1과 p2 사이의 맨해튼 거리는 다음과 같이 정의됩니다.(p1, p2) = |p1.x − p2.x

  17. 파이썬으로 이진 행렬의 행·열을 뒤집아 최대 합계 구하기

    문제 설명 2차원 이진 행렬(binary matrix)이 주어졌다고 가정해 봅시다. 우리는 행렬의 임의의 행 또는 열에 속한 모든 비트를 한 번에 뒤집을 수 있으며, 이 연산은 원하는 만큼 여러 번 수행할 수 있습니다. 모든 연산이 끝난 후 각 행을 하나의 이진수로 해석했을 때, 만들 수 있는 숫자들의 최대 합계를 구하는 것이 이 문제의 목표입니다. 예를 들어 입력 행렬이 다음과 같다고 해 보겠습니다. 010001 두 행을 모두 뒤집으면 각 행은 101과 110이 되고, 이때의 합계는 5 + 6 = 11로 최대가 됩니다. 접근 방

  18. 파이썬으로 친구 관계 그래프에서 친구 그룹 수 찾기 – DFS 연결 요소 풀이

    문제 이해하기친구 관계를 나타내는 리스트가 있다고 가정해 보겠습니다. 여기서 friends[i]는 사람 i와 친구인 사람들의 목록입니다. 친구 관계는 양방향이며, 각 사람은 자기 자신과도 친구로 간주합니다. 두 사람 사이에 서로 다른 친구들을 거쳐 이어지는 경로가 존재한다면, 그 두 사람은 같은 친구 그룹에 속하게 됩니다. 우리가 구해야 할 값은 전체 친구 그룹의 개수입니다.예를 들어 입력이 friends = [[0, 1, 5], [1, 0], [2], [3, 4], [4, 3], [5, 0]]이라면 출력은 3이 됩니다. 세 개의

  19. 파이썬으로 리스트의 마지막 인덱스까지 도달하는 최소 이동 횟수 구하기

    문제 소개숫자로 이루어진 리스트 nums가 주어지고, 우리는 현재 nums[0] 위치에 서 있다고 가정해 봅시다. 각 단계에서 현재 인덱스 i로부터 다음 세 가지 이동 중 하나를 선택할 수 있습니다.i + 1로 이동 (한 칸 앞으로)i - 1로 이동 (한 칸 뒤로)nums[i] == nums[j]를 만족하는 임의의 인덱스 j로 점프이때 리스트의 마지막 인덱스까지 도달하는 데 필요한 최소 단계 수를 구하는 것이 목표입니다.예를 들어 입력이 nums = [4, 8, 8, 5, 4, 6, 5]라면 출력은 3이 됩니다. 그 이유는 다음과

  20. Python으로 절단 구간과 겹치지 않는 구간 찾기

    정렬되어 있고 서로 겹치지 않는 구간(interval) 목록과 하나의 절단(cut) 구간이 주어졌을 때, 기존 구간 중 절단 구간과 겹치는 부분을 모두 제거한 새로운 목록을 반환하는 프로그램을 만들어 보겠습니다. 예제로 이해하기 예를 들어 구간 목록이 [[2, 11], [13, 31], [41, 61]]이고 절단 구간이 [8, 46]이라고 가정해 봅시다. 절단 구간에 걸친 부분을 잘라내면 결과는 [[2, 8], [46, 61]]이 됩니다. [2, 11]은 8~11 부분이 잘려나가 [2, 8]만 남습니다. [13, 31]은 절단 구

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:188/450  20-컴퓨터/Page Goto:1 182 183 184 185 186 187 188 189 190 191 192 193 194