메모리에 저장되는 데이터는 다양한 형태를 가질 수 있습니다. 예를 들어, 사람의 나이는 숫자 값으로 저장되고, 주소는 문자와 숫자가 섞인 영숫자(alphanumeric) 형태로 저장됩니다. 파이썬(Python)은 이러한 데이터에 대해 어떤 연산이 가능한지, 그리고 각 데이터를 어떻게 저장할지 정의하는 여러 가지 표준 데이터 유형을 제공합니다.파이썬에는 다음과 같이 5가지 표준 데이터 유형이 있습니다.숫자(Numbers)문자열(String)리스트(List)튜플(Tuple)딕셔너리(Dictionary)1. 파이썬 숫자형 (Numbers
파이썬 숫자 객체란?파이썬의 숫자(Number) 데이터 타입은 수치 값을 저장하는 데 사용됩니다. 숫자 객체는 변수에 값을 할당하는 순간 자동으로 생성됩니다.var1 = 1var2 = 10del 문으로 참조 삭제하기del 문을 사용하면 숫자 객체에 대한 참조를 삭제할 수 있습니다. del 문의 기본 문법은 다음과 같습니다.del var1[, var2[, var3[...., varN]]]]del 문은 단일 객체뿐만 아니라 여러 개의 객체를 한 번에 삭제할 수도 있습니다.del vardel var_a, var_b파이썬의 네 가지 숫자
파이썬 문자열(String)이란?파이썬에서 문자열(String)은 따옴표로 묶인 연속된 문자들의 집합을 의미합니다. 파이썬은 작은따옴표(...)와 큰따옴표(...)를 모두 지원하며, 두 방식은 기능적으로 동일하게 동작합니다.문자열의 일부분(부분 문자열)을 추출하려면 슬라이스 연산자([ ]와 [:])를 사용합니다. 이때 인덱스는 문자열의 맨 앞을 0으로 시작하여 순방향으로 계산되고, 뒤에서부터는 -1부터 역방향으로 계산됩니다.주요 문자열 연산자덧셈(+) : 두 문자열을 이어 붙이는 연결(Concatenation) 연산자곱셈(*) :
파이썬 리스트(List)란?리스트(List)는 파이썬의 복합 자료형 중 가장 유연하고 활용도가 높은 자료형입니다. 리스트는 쉼표(,)로 구분된 여러 항목을 대괄호([])로 감싸서 표현합니다. C 언어의 배열과 어느 정도 비슷하지만, 한 가지 중요한 차이점이 있습니다. 바로 리스트에 담긴 항목들은 서로 다른 데이터 타입을 가질 수 있다는 점입니다. 즉, 문자열과 숫자를 하나의 리스트에 함께 저장할 수 있습니다.리스트 생성 및 접근 방법리스트에 저장된 값은 슬라이스 연산자([ ]와 [:])를 사용해 접근할 수 있습니다. 인덱스는 리스트
튜플(tuple)은 리스트와 매우 유사한 또 다른 시퀀스(sequence) 데이터 타입입니다. 여러 개의 값을 쉼표(,)로 구분하여 구성하며, 리스트와 달리 괄호 ()로 묶는다는 점이 특징입니다.리스트(List)와 튜플(Tuple)의 차이점리스트와 튜플의 핵심적인 차이는 다음과 같습니다.리스트: 대괄호 []로 감싸며, 요소와 크기를 자유롭게 변경할 수 있습니다.튜플: 소괄호 ()로 감싸며, 한 번 생성되면 값을 수정할 수 없습니다(불변, immutable).즉, 튜플은 읽기 전용(read-only) 리스트라고 생각하면 이해하기 쉽습
파이썬(Python)의 딕셔너리(dictionary)는 일종의 해시 테이블(hash table) 방식으로 동작하는 자료형입니다. 펄(Perl) 등의 언어에서 볼 수 있는 연관 배열이나 해시와 비슷하게 작동하며, 데이터를 키(key)와 값(value)의 쌍으로 저장합니다. 키에는 거의 모든 파이썬 자료형을 사용할 수 있지만 일반적으로 숫자나 문자열이 많이 쓰이며, 값에는 문자열, 숫자, 리스트, 심지어 다른 딕셔너리까지 어떤 파이썬 객체든 자유롭게 담을 수 있습니다. 딕셔너리 기본 사용법 딕셔너리는 중괄호({ })로 감싸서 정의하고
프로그래밍을 하다 보면 서로 다른 데이터 유형 간의 변환이 필요한 경우가 자주 발생합니다. 파이썬에서는 유형을 변환할 때 해당 타입 이름을 함수처럼 호출하기만 하면 됩니다. 예를 들어 int(10)처럼 작성하면 문자열이 정수로 변환됩니다.파이썬은 한 데이터 유형을 다른 유형으로 변환할 수 있는 다양한 내장 함수를 제공하며, 이러한 함수들은 변환된 값을 나타내는 새로운 객체를 반환합니다. 아래 표에서 주요 형 변환 함수와 그 설명을 확인해 보세요.파이썬 주요 데이터 유형 변환 함수번호함수 및 설명1int(x [,base])x를 정수로
Python 연산자란 무엇인가?연산자(operator)란 하나 이상의 값인 피연산자(operand)를 조작하여 새로운 결과를 만들어내는 기호 또는 구문을 의미합니다.간단한 예로 4 + 5 = 9라는 수식을 살펴보겠습니다. 여기서 4와 5가 피연산자이며, 두 값을 더하는 역할을 하는 +가 바로 연산자입니다.Python은 다른 프로그래밍 언어에 비해 문법이 직관적이면서도 다양한 연산자를 제공하여, 복잡한 계산과 데이터 처리를 간결하게 표현할 수 있습니다.Python에서 지원하는 연산자 유형Python 언어는 다음과 같은 7가지 유형의
파이썬에서 산술 연산자는 숫자 데이터를 대상으로 덧셈, 뺄셈, 곱셈 등의 수학적 계산을 수행하는 가장 기본적인 연산자입니다. 이 글에서는 파이썬에서 사용할 수 있는 모든 산술 연산자의 종류와 동작 방식을 표로 정리하고, 실제 예제 코드와 실행 결과를 통해 쉽게 이해할 수 있도록 설명합니다. 파이썬 산술 연산자의 종류 변수 a에 10, 변수 b에 20이 저장되어 있다고 가정했을 때, 각 산술 연산자의 동작은 다음과 같습니다. 번호연산자 및 설명예시 1+ 덧셈연산자 양쪽의 값을 더합니다.a + b = 30 2- 뺄셈왼쪽 피연
파이썬 비교 연산자란?비교 연산자(Comparison Operator)는 연산자를 기준으로 양쪽에 있는 값을 서로 비교하여 두 값 사이의 관계를 판단하는 연산자입니다. 비교 결과는 항상 참(True) 또는 거짓(False)으로 반환되며, 이러한 특성 때문에 관계 연산자(Relational Operator)라고도 불립니다.아래 표에서는 변수 a에는 10, 변수 b에는 20이 저장되어 있다고 가정하고 각 연산자의 동작과 예시를 정리했습니다.번호연산자 및 설명예시1==두 피연산자의 값이 서로 같으면 조건식이 참(True)이 됩니다.(a
파이썬에서 할당 연산자(Assignment Operator)는 변수에 값을 대입하거나, 기존 값에 연산을 수행한 뒤 그 결과를 다시 변수에 저장할 때 사용됩니다.변수 a가 10을, 변수 b가 20을 가지고 있다고 가정하고 각 연산자를 살펴보겠습니다.파이썬 할당 연산자 목록번호연산자 및 설명예시1= (기본 할당)오른쪽 피연산자의 값을 왼쪽 피연산자에 대입합니다.c = a + b는 a + b의 결과값을 c에 대입2+= (덧셈 후 할당)오른쪽 피연산자를 왼쪽 피연산자에 더한 결과를 왼쪽 피연산자에 대입합니다.c += a는 c = c +
파이썬 비트 연산자란?비트 연산자(Bitwise Operator)는 숫자를 이진수 비트(bit) 단위로 해석하여 비트별로 직접 연산을 수행하는 연산자입니다. 파이썬에서는 정수형 데이터에 대해 비트 연산을 지원하며, 플래그(flag) 처리, 비트 마스킹, 임베디드 프로그래밍 등 저수준 작업에서 자주 활용됩니다.예를 들어 a = 60, b = 13이라고 할 때, 두 값의 이진수 표현은 각각 다음과 같습니다.a = 0011 1100b = 0000 1101이 두 변수를 피연산자로 사용했을 때 주요 비트 연산의 결과는 아래와 같습니다.a&a
파이썬 논리 연산자란? 파이썬은 조건문(if)과 반복문(while)에서 참(True)과 거짓(False)을 판단할 때 사용하는 세 가지 논리 연산자를 제공합니다. 이 글에서는 각 연산자의 동작 방식과 실제 활용 예제를 살펴보겠습니다. 설명을 위해 변수 a에는 10, 변수 b에는 20이 저장되어 있다고 가정합니다. 파이썬 논리 연산자 종류 번호연산자 및 설명예시 1 and (논리곱)두 피연산자가 모두 참일 때만 전체 조건이 참(True)이 됩니다. (a and b) → True 2 or (논리합)두 피연산자 중 하나라도
파이썬(Python)의 멤버십 연산자(membership operator)는 문자열(str), 리스트(list), 튜플(tuple)과 같은 시퀀스(sequence) 자료형 안에 특정 값이 포함되어 있는지 검사할 때 사용하는 연산자입니다. 파이썬에서 제공하는 멤버십 연산자는 다음 두 가지입니다.멤버십 연산자의 종류번호연산자 및 설명예시1in지정한 시퀀스에서 해당 변수(값)를 찾으면 True, 찾지 못하면 False를 반환합니다.x in y — x가 시퀀스 y의 요소라면 참(True)을 반환합니다.2not in지정한 시퀀스에서 해당 변
연산자 우선순위란? 연산자 우선순위(operator precedence)는 하나의 표현식 안에 여러 연산자가 함께 사용될 때, 어떤 연산이 먼저 수행되는지를 결정하는 규칙입니다. 우선순위를 정확히 이해하면 복잡한 수식도 헷갈리지 않고 읽을 수 있습니다. 다음 표는 Python의 모든 연산자를 우선순위가 높은 것부터 낮은 것 순으로 정리한 것입니다. 번호연산자설명 1**지수 연산(거듭제곱) 2~ + -비트 보수(complement), 단항 플러스/마이너스 (마지막 두 연산자의 메소드 이름은 각각 +@, -@) 3* / % //곱셈
루프 제어문(loop control statement)은 반복문의 기본 실행 흐름을 변경하는 역할을 합니다. 실행이 특정 스코프(scope)를 벗어나면, 해당 스코프 안에서 생성된 모든 자동 객체는 자동으로 소멸됩니다.Python은 이러한 실행 흐름을 제어하기 위해 break, continue, pass 세 가지 대표적인 제어문을 지원합니다. 각 제어문의 동작 방식과 활용 예제를 하나씩 살펴보겠습니다.1. break 문break 문은 현재 실행 중인 반복문을 즉시 종료하고, 루프 바로 다음에 위치한 문장으로 실행 흐름을 넘깁니다.
문제 개요연결 리스트(Linked List)가 하나 주어졌다고 가정해 봅시다. 우리가 해야 할 일은 이 리스트의 요소들이 회문(palindrome)을 이루는지 확인하는 것입니다. 예를 들어 리스트가 [1, 2, 3, 2, 1]이라면 앞에서부터 읽으나 뒤에서부터 읽으나 순서가 같으므로 회문입니다.이 문제는 추가 배열 없이 투 포인터(Fast & Slow Pointer) 기법과 연결 리스트 앞부분 반전을 조합하면 시간 복잡도 O(n), 공간 복잡도 O(1)만으로 해결할 수 있습니다.해결 단계fast := head, slow :=
문제 개요 정수 배열이 하나 주어졌을 때, 배열 안에서 연속된 하나의 부분 배열을 골라 그 부분만 오름차순으로 정렬했을 때 전체 배열이 완전히 정렬되도록 만드는, 가장 짧은 부분 배열을 찾아야 합니다. 최종적으로 그 부분 배열의 길이를 출력하면 됩니다. 예를 들어 배열이 [2,6,4,8,10,9,15]라면 정답은 5입니다. 정렬이 필요한 구간은 [6,4,8,10,9]로, 이 다섯 개 원소만 오름차순으로 정렬하면 전체 배열이 [2,4,6,8,9,10,15]가 되어 완전히 정렬된 상태가 됩니다. 접근 방법 가장 직관적인 방법은 원본
문제 개요정수 n개로 이루어진 배열이 주어졌을 때, 최대 한 개의 요소만 수정하여 배열을 비감소(non-decreasing) 배열로 만들 수 있는지 확인하는 것이 이번 포스팅의 핵심입니다. 여기서 비감소 배열이란 모든 인덱스 i(1 <= i < n)에 대해 array[i] <= array[i + 1] 조건을 만족하는 배열을 의미합니다.예를 들어 배열이 [4, 2, 3]이라면 정답은 true입니다. 첫 번째 요소인 4를 1로 바꾸기만 하면 [1, 2, 3]이 되어 비감소 배열을 만들 수 있기 때문입니다.해결 접근 방법
문제 소개정수 배열 A가 주어졌을 때, 다음과 같은 방식으로 배열을 수정해야 합니다.인덱스 i를 하나 선택해 A[i]를 -A[i]로 바꾸는 연산을 총 K번 수행할 수 있습니다. 모든 연산을 마친 뒤 만들 수 있는 배열 합의 최댓값을 구하는 것이 이 문제의 목표입니다.예를 들어 A = [4, 2, 3]이고 K = 1이라면, 인덱스 1을 선택해 배열을 [4, -2, 3]으로 만들 수 있습니다. 이때 배열의 합은 5가 되며, 이것이 가능한 최댓값입니다.문제 해결 접근법이 문제는 그리디(Greedy) 알고리즘으로 효율적으로 해결할 수 있습