목록2025/12/23 (7)
cmod.ify
1. 파일 처리의 기본 원리프로그램이 직접 파일을 만지는 게 아니라, 운영체제(OS)에게 요청해서 결과를 돌려받는 방식임.필수 단계: 파일 열기(open) → 작업(read/write) → 파일 닫기(close)주의: 파일이나 네트워크 작업은 예외가 발생할 확률이 높으므로 반드시 Exception Handling(try-finally)이 동반되어야 함.2. 파일 읽기와 쓰기파일 쓰기 (Write)open('경로', 'w', encoding='utf-8') 형태로 개방.write(): 문자열 기록.writelines(): 리스트 등 줄 단위 데이터를 한 번에 기록.try: file = open('./test.txt', 'w') #파일에 한번에 기록 file.write("hello Pytho..
1. 오류의 종류 (Error vs Exception)프로그램에서 발생하는 문제는 크게 세 가지로 나뉨.컴파일 오류: 오타나 문법 위반으로 아예 실행조차 안 되는 오류. (수정 필수)논리적 오류: 실행은 잘 되는데, 계산을 틀려서 결과가 이상하게 나오는 오류. (디버깅 필요)예외(Exception): 문법은 맞지만 실행 중에 외부 요인(잘못된 입력, 파일 없음 등)으로 중단되는 현상2. 디버깅(Debugging)예외나 논리적 오류의 원인을 찾아내고 수정하는 과정임.방법: 직접 로그를 찍어보는 Logging, 개발 도구(IDE)의 Debugging Tool, 혹은 Testing Tool을 활용함.3. 예외 처리(Exception Handling)프로그램이 예외 때문에 갑자기 죽지 않도록 안전장치를 치는 것..
1. collections 모듈: Counter 클래스데이터의 개수를 세거나 항목별 집계를 할 때 쓰는 효자 클래스임. 시퀀스 데이터(리스트, 튜플 등)를 넣으면 자동으로 dict 형태로 개수를 저장해줌.from collections import Counter# 리스트 안의 요소 개수를 바로 카운트counter = Counter(['red', 'blue', 'green', 'red', 'blue', 'blue'])print(counter) # Counter({'blue': 3, 'red': 2, 'green': 1})print(counter['red']) # 2레코드 데이터 집계 (응용)단순 개수뿐만 아니라 특정 항목의 합계를 구할 때도 유용함.word_cloud = [ ("HAPI",..
1. 모듈 (Module)독자적인 기능을 갖는 구성요소. 파이썬에서는 하나의 파일(.py)을 모듈이라고 부름.종류:표준 모듈: 파이썬 설치 시 기본으로 제공됨 (ex. sys, abc).사용자 정의 모듈: 내가 직접 만든 파일.3rd Party 모듈: 외부 개발자/단체가 만든 모듈. (ex. numpy, pandas 등)가져오는 법:import 모듈: 전체 가져오기. 쓸 때 모듈.함수() 형태.from 모듈 import 함수: 특정 기능만 가져오기. 모듈 이름 생략 가능.import 모듈 as 별명: 이름이 길거나 겹칠 때 줄여서 사용. (원본 이름은 사용 불가)경로 확인: sys.path로 파이썬이 어디서 모듈을 찾는지 확인 가능. (현재 디렉토리 -> 설치 디렉토리 순)2. 패키지 (Package)관..
문제 이해 4개를 공평하게 최소한의 찌꺼기만 나오게 11개로 만들기 랜선 최댓값을 이용해서 이진탐색 코드 계획 입력받기 정답 담을 변수 만들기 start mid = (start + end) // 2 mid 로 4개 반복하면서 잘라봄 line[i] // mid 그걸 개수로 세 봄 갯수가 맞냐? 인데 크냐 작냐도 확인 해야함 만약 11개보다 작으면 길이가 너무 길다 길이를 줄여라(왼쪽) 만약 11개보다 크면 길이가 너무 짧다 길이를 늘려라(오른쪽) 그리고 정답 갯수랑 같으면 정답에 최댓값 확인해서 저장하기 +) n개 이상이면 정답이라서 mid중 최댓값 저장해두기 import sysinput = sys.stdin.readlinek, n = map(int, input().split())line = []fo..
1. -로 분류 2. 첫글자 마이너스 확인 '' 3. pluslist에 요소 다 넣기 첫글자가 만약 마이너스라면 다음항목을 -로 저장 아니라면 +로 저장 나머지 요소들은 그냥 다 -로 저장 sys input으로 하면 개행문자도 삽입 되는데 split 사이에 strip을 넣으면 안 들어감 import sysinput = sys.stdin.readlinen = input().strip().split('-')pluslist = []n[0] = '0' if n[0] == '' else n[0]for i in n: p = list(map(int, i.split('+'))) pluslist.append(p)answer = 0#첫글자 음수인경우if sum(pluslist[0]) == 0: for i..
실패 코드그리디 구현import sysimport mathinput = sys.stdin.readlinen = int(input())cnt = 0while (n > 2): n = math.sqrt(n) print(n) cnt += 1print(cnt) 힌트를 받아 dp라는 것을 알았다그렇지만 점화식 세우는게 감이 안잡혀서 그냥 정답을 보고 이해하기로 했다import sysinput = sys.stdin.readlinen = int(input())d = [5] * (n+1)d[1] = 1for i in range(2,n+1): min_v = 5 j=1 while j*j i: if j*j == i: min_v = 1 bre..