리스트가 회문(palindrome)인지 확인해야 할 때는, 문자열을 뒤집은 후 원본 문자열과 비교하는 메서드를 정의하면 됩니다. 비교 결과에 따라 콘솔에 적절한 메시지를 출력하며, 이 과정에서 리스트 컴프리헨션(list comprehension)과 join 메서드가 활용됩니다. 회문(Palindrome)이란? 회문이란 앞에서 읽으나 뒤에서 읽으나 동일한 문자열이나 수열을 의미합니다. 예를 들어 [77, 1, 56, 65, 1, 77]처럼 요소들이 좌우 대칭을 이루는 경우 회문이라고 할 수 있습니다. 예시 코드 다음은 리스트가 회문인
리스트에서 특정 값 K 바로 앞에 위치한 요소를 추출해야 하는 경우가 있습니다. 이럴 때는 간단한 반복문과 append 메서드를 활용하면 손쉽게 해결할 수 있습니다.예제아래는 이를 구현한 예시 코드입니다.my_list = [45, 65, 32, 78, 99, 10, 21, 2]print(The list is : )print(my_list)K = 99print(The value of K is )print(K)my_result = []for elem in range(len(my_list) - 1): if my_list[elem +
Pandas에서 시간 기준으로 데이터를 묶어 집계하고 싶다면 groupby() 함수와 pd.Grouper를 함께 사용하는 것이 가장 효과적입니다. 이 글에서는 자동차 판매 기록 데이터를 예로 들어, 분(minute) 단위 간격으로 DataFrame을 그룹화하고 구간별 등록 가격(Reg_Price)의 합계를 계산하는 방법을 알아보겠습니다.예제 데이터 준비하기먼저 세 개의 열(Car, Date_of_Purchase, Reg_Price)로 구성된 DataFrame을 만듭니다. 여기서 Date_of_Purchase 열은 날짜와 시간을 모두
리스트(행렬)를 K 크기의 연속된 하위 리스트(subarray) 합계 중 최댓값을 기준으로 정렬해야 하는 경우가 있습니다. 이럴 때 파이썬에서는 max와 sum 내장 함수를 활용한 사용자 정의 키 함수를 만들어 sort() 메서드에 적용하면 간단하게 해결할 수 있습니다.예제 코드아래 예제를 통해 실제 동작 방식을 확인해 보겠습니다.def sort_matrix_K(my_list): return max(sum(my_list[index: index + K]) for index in range(len(my_list) - K)) my
리스트의 각 요소에 해당 인덱스 값을 곱한 뒤, 그 결과를 모두 더한 합계를 구해야 하는 경우 파이썬의 내장 함수인 enumerate를 활용하면 간단하게 해결할 수 있습니다. enumerate는 리스트를 순회할 때 인덱스와 요소를 동시에 반환해 주기 때문에 별도의 카운터 변수 없이 깔끔한 코드 작성이 가능합니다. 예제 코드 아래는 인덱스 값과 요소의 곱을 누적하여 합계를 구하는 예제입니다. my_list = [71, 23, 53, 94, 85, 26, 0, 8] print(The list is :) print(my_list) m
프로그래밍 문제를 풀다 보면 K개의 서로 다른(고유한) 문자를 포함하는 크기 N의 부분 문자열을 찾거나 생성해야 하는 경우가 있습니다. 이럴 때 세 개의 매개변수를 받아 필요한 문자열을 반환하는 함수를 정의하고, if 조건문을 활용하면 간단하게 해결할 수 있습니다.예제 코드다음은 해당 기능을 구현한 파이썬 코드 예시입니다.def generate_my_string(string_size, substring_size, distinct_chars): my_string = count_1 = 0 count_2 = 0
리스트에서 K 거리 이내에 속하지 않는 요소를 찾아야 할 때는 간단한 반복문과 append 메서드를 활용하면 됩니다. 각 요소에 대해 키 값을 더하거나 뺀 결과가 원래 리스트에 존재하는지 확인하고, 존재하지 않는 경우에만 결과 리스트에 추가하는 방식입니다.예제아래는 실제 동작 예시입니다.my_list = [91, 13, 19, 25, 35, 3, 9, 11, 0] print("The list is :") print(my_list) my_key = 2 print("The key is ") pri
Pandas에서는 MultiIndex.from_arrays() 메서드를 사용하여 여러 개의 배열(리스트)을 조합해 다중 인덱스를 손쉽게 만들 수 있습니다. 다중 인덱스는 하나의 인덱스 축에 여러 계층의 레벨을 두어 복잡한 데이터를 체계적으로 관리할 때 유용합니다.이번 글에서는 자동차 이름 배열과 등록 가격 배열 두 개를 결합하여 다중 인덱스를 생성하는 과정을 단계별로 살펴보겠습니다.1단계: 자동차 이름 배열 생성먼저 예제에 사용할 자동차 이름으로 구성된 배열을 만듭니다.car = [Audi, Lexus, Tesla, Mercedes
리스트에서 특정 키 값(K)을 만날 때마다 그룹별 누적 합계를 구해야 하는 경우가 있습니다. 이럴 때는 간단한 반복문(iteration)과 append 메서드를 활용하면 손쉽게 해결할 수 있습니다.동작 원리리스트의 요소를 하나씩 순회하면서 다음과 같은 규칙으로 처리합니다.현재 요소가 키 값과 다르면 → 합계에 계속 더합니다.현재 요소가 키 값과 같으면 → 지금까지 누적된 합계와 키 값을 결과 리스트에 저장한 뒤, 합계를 0으로 초기화합니다.모든 순회가 끝나면 마지막으로 남아 있는 합계도 결과 리스트에 추가하여 완성합니다.예제 코드다
리스트에서 연속으로 반복되는 요소들을 찾아, 각 요소를 반복 횟수만큼 거듭제곱한 뒤 모두 더해야 하는 경우가 있습니다. 이럴 때 if 조건문과 간단한 반복문, 그리고 ** 거듭제곱 연산자를 활용하면 손쉽게 해결할 수 있습니다.예제아래는 실제 구현 예시입니다.my_list = [21, 21, 23, 23, 45, 45, 45, 56, 56, 67] print(The list is :) print(my_list) my_freq = 1 my_result = 0 for index in range(0, len(my_list) - 1):
딕셔너리 여러 개로 이루어진 리스트에서 특정 키의 값을 해당 리스트의 K번째 인덱스 값으로 교체해야 할 때는 isinstance 메서드와 간단한 반복문을 활용하면 됩니다. 이 방식은 값의 자료형을 먼저 확인한 뒤 조건에 맞는 경우에만 교체를 수행하기 때문에 안전하게 동작합니다. 예제 다음은 실제 구현 과정을 보여주는 예시입니다. my_list = [{python: [5, 7, 9, 1], is: 8, good: 10}, {python: 1, for: 10, fun: 9}, {cool: 3, python: [7, 3,
Pandas DataFrame에서 두 날짜 사이에 해당하는 행만 추출하고 싶다면 dataframe.loc 속성과 비교 연산자를 조합하면 됩니다. 먼저 필요한 라이브러리를 임포트합니다.import pandas as pd날짜 기록을 담은 딕셔너리(리스트 값 형태)를 생성합니다.d = {Car: [BMW, Lexus, Audi, Mercedes, Jaguar, Bentley], Date_of_Purchase: [2021-07-10, 2021-08-12, 2021-06-17, 2021-03-16, 2021-02-19, 2021-0
딕셔너리에 담긴 값들이 오름차순으로 정렬되어 있는 항목만 걸러내야 하는 경우, 파이썬의 sorted 메서드와 리스트 컴프리헨션(list comprehension)을 함께 사용하면 간단하게 해결할 수 있습니다.코드 예제다음은 실제 동작 과정을 보여주는 예제입니다.my_list = [{python: 2, is: 8, fun: 10}, {python: 1, for: 10, coding: 9}, {cool: 3, python: 4}] print(The list is :) print(my_list) my_result = [in
리스트의 각 요소를 자신의 양쪽 이웃 중 더 큰 값으로 교체해야 하는 경우, 간단한 반복문과 if, else 조건문을 활용하면 손쉽게 해결할 수 있습니다.예제아래는 해당 기능을 구현한 예시입니다.my_list = [41, 25, 24, 45, 86, 37, 18, 99] print(The list is :) print(my_list) for index in range(1, len(my_list) - 1): my_list[index] = my_list[index - 1] if my_list[index - 1] > my
Python에서 문자열들을 끝에서 K 길이만큼 잘라낸 접미사(suffix)를 기준으로 그룹화해야 하는 경우가 있습니다. 이럴 때는 간단한 반복문과 함께 try, except 블록을 활용하면 손쉽게 구현할 수 있습니다. 예제 코드 아래는 문자열 목록을 접미사 기준으로 그룹화하는 전체 예제입니다. my_list = [peek, leak, creek, weak, good, week, wood, sneek] print(The list is :) print(my_list) K = 3 print(The value of K is ) pr
Pandas에서 여러 개의 DataFrame을 하나로 합치려면 merge() 함수를 사용하면 됩니다. 이 중 오른쪽 외부 조인(Right Outer Join)은 merge() 함수의 how 매개변수에 아래 값을 설정하여 구현합니다. how = right 오른쪽 외부 조인은 오른쪽(두 번째) DataFrame의 모든 행을 그대로 유지하면서 병합하며, 왼쪽 DataFrame에 일치하는 키가 존재하지 않는 경우 해당 값은 NaN(결측치)으로 채워집니다. 먼저 pandas 라이브러리를 별칭(alias)과 함께 임포트합니다. import p
Pandas에서 DataFrame의 행을 리스트(list) 형태로 그룹화하려면 groupby()와 함께 apply() 함수를 사용하면 됩니다. 이 방법을 활용하면 특정 열을 기준으로 데이터를 묶고, 각 그룹에 속한 값들을 하나의 리스트로 정리할 수 있습니다.1. 라이브러리 불러오기먼저 필요한 Pandas 라이브러리를 임포트합니다.import pandas as pd2. 샘플 DataFrame 생성예제를 위해 Car와 Units 두 개의 열을 가진 DataFrame을 만들어 보겠습니다.dataFrame = pd.DataFrame(
Pandas에서 선형 보간(Linear Interpolation)으로 NaN 채우기데이터 분석을 하다 보면 결측치(NaN)를 적절한 값으로 채워야 하는 경우가 자주 발생합니다. Pandas에서는 interpolate() 메서드를 사용하면 시리즈(Series)의 NaN 값을 선형 보간법으로 손쉽게 채울 수 있습니다.선형 보간은 누락된 값의 앞뒤에 있는 값들을 기준으로 일정한 간격으로 값을 추정하는 방식입니다. 예를 들어 20과 40 사이에 NaN이 있다면, 그 사이 값인 30으로 채워집니다.1단계: 필요한 라이브러리 임포트하기먼저 P
문자열에서 가장 드물게 등장하는(빈도가 가장 낮은) 문자를 찾아야 하는 경우, 파이썬의 Counter 클래스를 사용하면 간단하게 해결할 수 있습니다. Counter로 각 글자의 개수를 센 뒤, min 함수를 사용해 개수가 가장 작은 값을 가진 문자를 추출하는 방식입니다.동작 원리Counter는 문자열을 입력받으면 각 문자를 키(key)로, 등장 횟수를 값(value)으로 하는 딕셔너리 형태의 객체를 반환합니다. 여기에 min 함수에 key=my_result.get 옵션을 지정하면, 문자 자체가 아닌 각 문자의 개수를 기준으로 비교하
파이썬으로 개발을 하다 보면 특정 문자열에 특수 문자가 포함되어 있는지 확인해야 하는 경우가 종종 있습니다. 이럴 때는 check_string이라는 메서드를 정의하고, 정규 표현식(regular expression)과 re 모듈의 compile 메서드를 활용하여 문자열 내에 특수 문자의 존재 여부를 손쉽게 검사할 수 있습니다. 메서드 외부에서 문자열을 정의한 뒤, 해당 문자열을 매개변수로 전달하며 메서드를 호출하는 방식으로 동작합니다.예제 코드아래는 위 내용을 구현한 전체 예제입니다.import re def check_string