본문 바로가기

파이썬30

백준 2018, 1940, 1253 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net n = int(input()) # 연속된 수의 합이 n을 넘기면 어차피 그 뒤의 값들은 볼 필요가 없어 반으로 나눠줌 end = n // 2 if n % 2 == 0 else n // 2 + 1 A = list(range(1, end + 1)) # 구간합을 구하는 배열을 구함. S = [A[0]] for i in range(end-1): S.append(S[i] + A[i+1.. 2023. 10. 24.
백준 1546, 2750, 11720 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net n = int(input()) nums = [] for i in range(n): nums.append(int(input())) nums.sort() print(*nums) > input으로 n을 받아서 n번 만큼 숫자를 받습니다. 받은 숫자를 오름차순으로 정렬해서 모든 요소를 출력했습니다. 그냥 제출했을 때는 시간이 80ms가 나왔습니다. import sys input = sys.stdin.readli.. 2023. 10. 22.
시간 복잡도/ 디버깅 1. 시간 복잡도 시간 복잡도는 어떤 작업을 수행하는 데 걸리는 시간을 어떻게 측정하는지에 대한 개념입니다. 이것은 주로 컴퓨터 과학에서 사용되며, 우리는 알고리즘(특정 작업을 수행하는 방법)의 효율성을 평가하기 위해 시간 복잡도를 분석합니다. 알고리즘에서는 주어진 문제를 해결하기 위한 연산 횟수를 의미합니다. 코딩 테스트에서는 시간 복잡도를 표현할 때 일반적으로 "Big O 표기법"을 사용합니다. Big O 표기법은 최악일 때의 연산 횟수를 기준으로 나타내는 표기법입니다. 시간 복잡도의 도출 기준 1. 상수는 시간 복잡도에서 제외된다. 2. 가장 많이 '중첩'된 반복문의 횟수가 시간 복잡도의 기준이 된다. 아래 예제를 통해 설명을 풀어보겠습니다. def once_loops(n): # 첫 번째 루프 fo.. 2023. 10. 22.
파이썬 예외처리 1. 예외 예외(Exception)는 프로그램 실행 중 발생할 수 있는 예상치 못한 문제 또는 오류 상황을 의미합니다. 예외가 발생하면 프로그램은 중단되기 때문에 이를 적절하게 처리하여 중단을 방지하거나 오류에 대한 정보를 사용자에게 제공해야 합니다. print(10/3) print(5/0) # ZeroDivisionError: division by zero print(4/2) ValueError 잘못된 값을 함수나 연산에 제공할 때 발생합니다. 예) 숫자가 아닌 문자열을 int() 함수로 변환하려고 할 때 발생. TypeError 올바르지 않은 유형의 객체를 연산에 사용하려 할 때 발생합니다. 예) 문자열과 숫자를 함께 더하려고 할 때 발생. ZeroDivisionError 숫자를 0으로 나누려고 할 .. 2023. 9. 17.
파이썬 스페셜 메소드 1. 스페셜 메소드 파이썬의 스페셜 메서드 (또는 매직 메서드라고도 불림)는 더블 언더스코어(__)로 시작하고 끝나는 메서드 이름을 갖습니다. 이 메서드들은 특정 구문이나 내장 함수를 사용할 때 파이썬 인터프리터에 의해 자동으로 호출됩니다. 예를 들어, 객체에 대해 + 연산자를 사용하면 해당 객체의 __add__ 메서드가 호출됩니다. 클래스에서 사용했던 __init__메소드도 객체를 초기화해주는 스페셜 메소드 입니다. __str__ : 객체를 문자열로 표현하는 메서드. print() 함수나 str() 함수를 사용할 때 호출 book = Book('미친듯이 재밌는 파이썬') print(book) print(str(book)) # str메소드를 오버라이드 하기 class Book: def __init__(s.. 2023. 9. 17.
파일 입출력 라이브러리2 1.pickle pickle 모듈은 파이썬 객체 구조를 직렬화하고 역직렬화하는 프로세스를 제공합니다. 다른 말로하면, 파이썬 객체(리스트, 딕셔너리, 클래스 인스턴스 등)를 바이트 스트림으로 변환하고, 그 바이트 스트림을 다시 파이썬 객체로 복원할 수 있습니다. pickle 모듈은 Python 객체의 직렬화와 보존에 유용하며, 데이터를 효과적으로 저장하고 공유하는 데 사용됩니다. 그러나 보안과 버전 호환성 등의 주의사항을 염두에 두고 사용해야 합니다. import pickle data = ['apple', 'banana', 'orange'] # 직렬화, 바이너리로 저장을 하기때문에 'wb'사용 with open('list.pkl', 'wb') as f: pickle.dump(data, f) # 역직렬화 .. 2023. 9. 14.