본문 바로가기

알고리즘25

파이썬 윤년 계산하기 (with 백준 2753) 파이썬 윤년 계산은 calendar 모듈의 isleap() 함수 사용한다.calendar.isleap(year)year 윤년이면 True, 아니면 False 반환import calendar as cdy = int(input()) #년도 입력 yyyyif (cd.isleap(y)): #윤년이면 True 반환 print(f"입력한 연도는 윤년입니다.: {cd.isleap(y)}")else: #윤년이 아니면 False 반환 print(f"입력한 연도는 윤년이 아닙니다.: {cd.isleap(y)}") isleap() 함수를 사용하지 않고 직접 계산하여 윤년 계산할 수 있다.이는 백준 2753 문제 풀이로 연습. ▶ 윤년 연습 백준 문제 풀이https://www.acmicpc.net/problem/2.. 2024. 6. 7.
[파이썬] 시간 함수 어떻게 쓰나 (with 백준 10699) 파이썬에서 시간함수는 time() 객체 또는 datatime() 객체 사용한다. 내 프로그램의 작동시간은 얼마나 걸리는지 체크해 보고 싶다면 time() 객체 사용한다.#내 프로그램의 작동시간을 재보자import timest = time.time() #시작시간#프로그램 동작 소스. 여기서는 1초로 표현time.sleep(1)end = time.time() #종료시간diff = end - st #시작과 종료의 차이 계산print(f"프로그램 작동시간:{diff: .5f} sec") #소수점 5자리까지 표현"""프로그램 작동시간: 1.00107 sec""" 날짜 계산을 하기 위해서는 datetime() 객체를 사용한다.#날짜 차이를 구해보자import datetime as dt#시작일부터 종료일까지 몇일 .. 2024. 6. 5.
백준 2164 큐, deque 연습 백준 2164 문제 풀이https://www.acmicpc.net/problem/2164풀이전형적인 큐 연습 문제로,제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮기는 방안을deque 객체의 rotate() 메서드를 사용하여 구현하거나,popleft()와 append()를 사용하여 구현하느냐는 선택의 문제● deque 객체의 rotate() 메서드 사용 코드#rotate() 사용import sysfrom collections import dequeN = int(sys.stdin.readline().rstrip())lst = deque([i+1 for i in range(N)])#print(lst)while True: if len(lst) == 1: break .. 2024. 5. 31.
파이썬 스택, 큐 deque (with 백준 18258) 스택 파이썬에서 스택은 리스트 객체를 사용한다.☞ 리스트 (배열)에 대한 내용은 이전 글 참고 파이썬 리스트 배열 list (with 백준 5597, 10250)파이썬의 리스트는 대괄호 사이에 쉼표로 구분된 값들로 표현한다.일차원 리스트A = ['a', 'b', 'c', 'd', 'e']B = ['가', '나', '다', '라', '마']print(A) # ['a', 'b', 'c', 'd', 'e']print(B) # ['가', '나', '다', '라', '마yuneenelife.tistory.com 스택 vs 큐상황에 맞게 스택, 큐 방식을 선택하여 사용한다.스택은 선입후출/후입선출 (LIFO : Last in First Out) 방식으로 나중에 들어간 놈이 먼저 나오는 방식큐는 선입선출(FIFO :.. 2024. 5. 30.
파이썬 중복제거 set 집합함수 (with 백준 2776) set() 함수 사용 중복제거를 하고 싶을 때, set() 함수를 사용한다.set(i) 함수는 집합으로 만들어주는 함수이며 i의 값은 iterable 형식을 집합 객체로 반환해 준다.이때 iterable 형식은 딕셔너리의 키나 집합의 멤버로 사용할 수 있는 객체여야 한다.#list 를 set() 로 변환하면 집합으로 반환하면서 중복제거한다.a = [2,1,3,4,5,5,6,7,3]print(a) # [2, 1, 3, 4, 5, 5, 6, 7, 3]print(len(a)) # 9print(set(a)) # {1, 2, 3, 4, 5, 6, 7}print(len(set(a))) # 7b = ['lee', 'yun', 'park', 'yun', 'bang', 'lee']print(b) # ['lee', 'yu.. 2024. 5. 29.
파이썬 Counter (with 백준 10815, 10816) Counter() 객체 편리하고 빠르게 개수를 세도록 지원하는 계수기 도구 제공collections 모듈의 Counter() 객체 선언하여 사용한다. ex) from collections import Counterfrom collections import Countercnt = Counter()for word in ['yun', 'Lee', 'yun', 'bang', 'Lee', 'Lee']: cnt[word] += 1print(cnt) # Counter({'Lee': 3, 'yun': 2, 'bang': 1})words = ['yun', 'Lee', 'yun', 'bang', 'Lee', 'Lee']cnt1 = Counter(words)print(cnt1) # Counter({'Lee': 3, '.. 2024. 5. 28.
파이썬 람다 함수 lambda (with 백준 1181) lambda (람다) 표현식 lambda 키워드로 함수로 사용할 수 있으며 일반적인 함수 정의의 편의 문법임.lambda a, b: a+b 와 같이 함수 객체가 있는 곳이면 어디나 lambda 함수가 사용될 수 있다. 제약 문법적으로 하나의 표현식으로 제한됨.함수명이 없고 단발성으로 사용됨.● 람다 (lambda) 함수 예시#list a에 0 ~ 4 의 거듭제곱 값 저장한다.a = []for i in range(5): a.append(i**2)print(a) # [0, 1, 4, 9, 16]#list a에 0 ~ 4 의 거듭제곱 값 lambda 함수로 저장한다.a = list(map(lambda i: i**2, range(5)))print(a) # [0, 1, 4, 9, 16] ● 정렬 예시a = .. 2024. 5. 27.
파이썬 정렬 sort, sorted (with 백준 2750, 5597, 1181) 파이썬 정렬은 sort(), sorted()를 사용한다. 내장함수 sort()이 메서드는 리스트 내 항목 간의 비교만 사용하여 정렬한다.정렬 후 리스트는 수정된 상태로 유지된다.반환값이 없다.리스트 타입만 사용 가능A = ['a', 'd', 'e', 'c', 'b']#sort() 는 반환값이 없다.print(A.sort()) # NoneA = ['a', 'd', 'e', 'c', 'b']A.sort()print(A) # ['a', 'b', 'c', 'd', 'e']B = ['가', '다', '바','나']B.sort()print(B) # ['가', '나', '다', '바']C = [3,2,1,11,4]C.sort()print(C) # [1, 2, 3, 4, 11]D = ['3','2','1','11','.. 2024. 5. 24.
파이썬 for while 조건문 (with 백준 2446, 2522) 파이썬 for , while 조건문은 아래와 같이 사용한다.for (조건문) :조건문 사용 예시#숫자인 경우N = 5for i in N: #문자열일때 사용 print(i) # TypeError: 'int' object is not iterablefor i in range(N): print(i, end=" ") # 0 1 2 3 4for i in range(0, N): print(i, end=" ") # 0 1 2 3 4#문자인 경우M = '일이삼사오'for i in M: print(i, end=" ") # 일 이 삼 사 오for i in range(M): #숫자일때 사용 print(i, end=" ") # TypeError: 'str' object cannot be interp.. 2024. 5. 23.
파이썬 리스트 배열 list (with 백준 5597, 10250) 파이썬의 리스트는 대괄호 사이에 쉼표로 구분된 값들로 표현한다.일차원 리스트A = ['a', 'b', 'c', 'd', 'e']B = ['가', '나', '다', '라', '마']print(A) # ['a', 'b', 'c', 'd', 'e']print(B) # ['가', '나', '다', '라', '마']이차원 리스트A = [['a','b'], ['c','d'],['e','f']]print(A) # [['a', 'b'], ['c', 'd'], ['e', 'f']]print(A[0]) # ['a', 'b']print(A[0][0]) # a 리스트 값 저장append() 내장함수 사용 : 마지막 인덱스에 추가A = []# 리스트 값 추가A.append("a")A.append("b")A.append(".. 2024. 5. 22.