파이썬55 [Do-it! 코딩 테스트-기초편] 001. 숫자의 합 구하기 문제 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 접근 데이터 크기: 100 시간제한: 1초 숫자가 공백 없이 주어진다는 건 (숫자의 개수) = (입력 숫자의 길이) 파이썬은 임의 정밀도 방식을 사용하기 때문에 변수에 저장하는 값의 크기에 제한이 없다. 2023.10.21 - [파이썬/기본] - [파이썬] 임의 정밀도 정수 - 미완 공백없는 숫자를 정수형 리스트로 변경해서 인덱싱하며 합을 구한다. 문자열 인덱싱을 하고 각 문자를 정수형으로 변경하여 합을 구한다. 문자열은 파이썬 내장 시퀀스 자료형중 하나이다. (파이썬 내장.. 파이썬/코딩 테스트 2023. 10. 22. [알고리즘] 구간 합 구간 합(prefix sum) 배열이나 리스트에서 특정 구간의 합. 1차원 리스트에서 i 인덱스 부터 j 인덱스 까지의 합을 구하는 데 사용. 구간 합 알고리즘을 활용하려면 누적 합 배열을 알아야한다. 합 배열 만약 배열의 0부터 N까지의 합을 구한다면 시간 복잡도는 O(N)이다. 합 배열을 사용하면 O(1) 안에 해결할 수 있다. S[3] = A[0] + A[1] + A[2] + A[3] S[i] = A[0] + A[1] + A[2] + ... + A[i - 1] + A[i] 배열: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 위 배열의 S[5]를 구하면 1 + 2 + 3 + 4 + 5 + 6 = 21 배열의 합을 구하는 시간 복잡도는 O(N)이다. 만약 합을 반복하여 구해야한다면 O(N^.. 파이썬/알고리즘 2023. 10. 21. [파이썬] 임의 정밀도 정수 - 미완 아래는 Java의 데이터 타입에 따른 크기 범위이다. Java에선 100자리수 정수를 정수형 변수로 입력받을 수 없다. (fixed-precision) 하지만 파이썬은 임의 정밀도 방식(arbitrary-precision)을 사용하기 때문에 변수의 크기에 제한이 없다. https://mortada.net/can-integer-operations-overflow-in-python.html Can Integer Operations Overflow in Python? — Random Points We can see that it takes 28 bytes before we get to $2^{30}$ where python allocates 4 more bytes to store larger integers... 파이썬/기본 2023. 10. 21. [알고리즘] 자료구조, 배열과 리스트 기본 자료구조로서의 배열과 리스트에 대해 알아본다. 배열 배열은 메모리 공간에 연속적으로 존재한다. 각 인덱스는 연속된 메모리 주소를 갖는다. 인덱스로 값에 접근할 수 있다. 특정 인덱스의 값을 삽입하거나 삭제하려면 인덱스 주변의 값들도 이동시켜야한다. 배열의 크기는 선언할 때 지정할 수 있다. 선언된 배열의 크기는 변경할 수 없다. 리스트 인덱스가 없다. 값에 접근하려면 Head 포인터부터 순서대로 접근해야 한다. 노드로 이루어져 있다. 노드는 값과 다음 값의 주소를 가리키는 포인터로 이루어져있다. 포인터를 사용하기 때문에 데이터를 삽입하거나 삭제하는 연산이 빠르다. 선언할 때 크기를 지정하지 않아도 된다. 포인터를 저장할 공간이 필요하다. 파이썬의 리스트 파이썬의 리스트는 기본 자료구조로서의 리스트와.. 파이썬/알고리즘 2023. 10. 21. [파이썬] glob glob glob은 파일 및 디렉토리를 패턴을 사용하여 검색하는 데 사용된다. glob 파일 찾기, 현재 경로 import glob # 현재 디렉토리에서 확장자가 .txt인 파일 찾기 txt_files = glob.glob("*.txt") print(txt_files) glob 모듈의 glob 함수를 사용하여 파일을 찾는다. 메서드 인자로는 경로에 대한 문자열이 입력된다. 경로는 절대경로와 상대경로 모두 사용이 가능하다. 위의 경우 상대경로로, 현재 디렉토리에 있는 '.txt' 로 끝나는 파일을 반환하게 된다. glob 파일 찾기, 하위 경로 # 하위 경로의 txt파일 찾기 for filename in glob.glob('**/*.txt'): # '**' 하위의 어떤 경로든 상관없다. print(fil.. 파이썬/기본 2023. 10. 9. [파이썬] OS모듈 OS 모듈 os 모듈은 운영 체제와 상호 작용하는 많은 함수와 유틸리티를 제공한다. 디렉토리 관리, 환경 변수 접근, 프로세스 관리 등 다양한 운영 체제 작업을 수행할 수 있다. 주요 기능중 파일 읽고 쓰는 데 필요한 기능들이다. os.getcwd(), os.listdir() import fileinput import os # os 모듈은 운영체제와 상호작용하는 많은 함수와 유틸리티를 제공한다. # 현재 경로 확인, 진짜 많이 쓰임. os.getcwd() # 디렉토리 안에 파일(디렉토리)을 확인 os.listdir(os.getcwd()) # 파일에 대한 이름을 담는다. 리스트로 반환 # 파일, 폴더 다 가져온다. 아래 디렉토리의 파일 이름을 가져온다. getcwd() 함수는 현재 파이썬 스크립트가 실행 .. 파이썬/기본 2023. 9. 15. [파이썬] 객체지향과 클래스 객체지향 프로그래밍 객체지향 프로그래밍은 소프트웨어를 설계하고 구현하는 데 사용되는 중요한 프로그래밍 패러다임 중 하나이다. 이 패러다임은 프로그램을 "객체"라고 불리는 독립적인 개체로 나누고, 이러한 객체들 간의 상호작용을 통해 프로그램을 구성하는 개발 방법론이다. 클래스 class 클래스이름: # 클래스 속성(멤버 변수) 정의 속성1 = 초기값1 속성2 = 초기값2 # 생성자 메서드 (생략 가능) def __init__(self, 매개변수1, 매개변수2, ...): # 인스턴스 속성 초기화 self.속성1 = 매개변수1 self.속성2 = 매개변수2 # 메서드(멤버 함수) 정의 def 메서드1(self, 매개변수1, 매개변수2, ...): # 메서드 동작 정의 pass def 메서드2(self, 매개.. 파이썬/기본 2023. 9. 14. [파이썬] 재귀 호출 재귀 호출 재귀 호출은 함수가 자기 자신을 다시 호출하는 기법이다. def factorial(num): if num > 1: return num * factorial(num - 1) else: return num for num in range(5): print(factorial(num)) 팩토리얼은 1부터 자기 자신까지의 수를 각각 곱한 결과이다. 반환값에 함수 자기 자신을 호출하는데 매개변수값을 하나씩 줄여가며 호출한다. if 조건에 따라 계속 매개변수를 줄여가며 호출을 하고 조건이 False가 되면 반환을 시작한다. 각각 반환되는 값을 연산하고 또 반환하며 num의 팩토리얼 연산 결과를 반환한다. def palindrome(string): if len(string) 파이썬/기본 2023. 9. 14. [파이썬] 콜백함수 & 람다함수 콜백함수 다른 함수의 매개변수로 전달되며, 특정 조건이나 이벤트 발생 시 실행되는 함수이다. 비동기 작업 이벤트 처리 사용자 정의 동작 함수형 프로그래밍 언어에서 더 자주 사용되지만 객체 지향 언어에서도 사용된다. callback def callback_func(func): for i in range(5): func() def print_hello(): print("안녕하세요, 파이썬") print_hello() callback_func(print_hello) 콜백함수의 형태는 간단하다. 특정 조건이나 이벤트 발생 시 실행시키고자 하는 콜백함수를 다른 함수의 인자로 넣어준다. def callback_func(func, num): for i in range(num): func(i) def print_hel.. 파이썬/기본 2023. 9. 14. [파이썬] 변수의 범위 스코프 변수의 범위는 해당 변수가 프로그램 내에서 참조되고 변경될 수 있는 영역을 의미한다. local enclosing global built-in local # local def local_example(): local_var = "로컬 변수" print(local_var) local_example() # print(local_var) # NameError: name 'local_var' is not defined 로컬 변수는 지역 변수라고도 부른다. 지역이란 말 대로 메서드 내에 선언되어 메서드 내에서만 사용하고 변경할 수 있다. 메서드 밖에서 접근을 한다면 위처럼 선언되지 않은 변수라는 오류를 보게 된다. enclosing # enclosing def outer_function(): enclosi.. 파이썬/기본 2023. 9. 12. [파이썬] 함수와 메모리 메모리 로드 함수 정의 파이썬에서 함수는 객체로 취급된다. 함수를 정의하면 해당 함수의 코드, 로컬변수, 매개변수 등이 메모리에 로드된다. 함수가 호출되기 전에도 메모리상에 존재한다. 메모리 스택 함수가 호출되면 함수 호출 스택이 생성된다. 현재 실행중인 함수와 해당 함수의 로컬 변수, 매개변수를 저장하는 메모리 영역이다. 호출될 때 로컬 변수 및 매개변수가 스택에 push된다. 반환될 때 해당 변수들이 pop되어 스택에서 제거된다. 함수 실행이 완료되면 스택이 해제된다. 변수 할당: 파이썬의 함수는 일급 객체이다. 함수를 다른 변수에 할당하면 그 변수는 원래의 함수 객체를 참조한다. 하나의 함수에 여러 변수를 할당하면, 각 변수는 동일한 함수 객체를 참조한다. * 일급 객체 ( First-Class O.. 파이썬/기본 2023. 9. 11. [파이썬] None ※None None은 "아무 것도 없음" 또는 "값이 정의되지 않음" 을 나타낸다. None의 쓰임1 variable = None# 변수를 초기화할 때 사용할 수 있음 def my_function(x): if x > 10: return x print(my_function(9)) print(my_function(11)) None은 변수를 초기화할 때 사용할 수 있다. 또한 "함수의 반환값이 없다"라는 의미도 있다. None의 쓰임2 def hello(message=None): if message is None: print("Hello!") else: print(message) hello() def get_data_from_database(): pass data = get_data_from_database(.. 파이썬/기본 2023. 9. 11. 이전 1 2 3 4 5 다음