[Python] 백준 2346 < 풍선 터뜨리기 >
·
✏️ Study/🐍 Python
📍문제 링크https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선www.acmicpc.net 📍알고리즘 분류- 자료구조- 덱 📍문제 풀이- 1부터 N까지의 원형 리스트가 있고, 각 원소는 -N 부터 N 중 0을 제외한 정수를 값으로 갖는다1부터 시작하여 각 정수만큼 왼쪽, 오른쪽으로 이동하며 터지는 풍선의 번호를 순서대로 출력한다 📍코드from collections import dequeN = int(input())# list로는 바로 생성 불가d = de..
[Python] global, nonlocal
·
✏️ Study/🐍 Python
파이썬에서는 하위 스코프에서 상위 스코프의 변수를 영구 변경 가능 📍Global- 전역 변수를 하위 스코프에서 변경할 때 사용- 예시a = "outer"print(a) # outerdef print_out(): global a # a 를 전역 변수로 사용한다고 선언 a = "inner" # a 변경 print(a)print_out() # innerprint(a) # inner 📍nonlocal- 중첩 함수 내에서 지역 변수로 사용하지 않을 때 사용(상위 스코프의 비전역 변수를 탐색)def print_out(): num = 0 def change_num(): nonlocal num num = 100 print(num) cha..
[Python] deque
·
✏️ Study/🐍 Python
📍참고https://docs.python.org/ko/3/library/collections.html#deque-objects collections — Container datatypesSource code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple.,,...docs.python.org 📍Deque 란?- 스택 + 큐- head, tail에서 원소 추가, 삭제가 O(1)에 가능- 예시 from collections imp..
[Python] range(a, b) 에서 a == b 인 경우 주의하기
·
✏️ Study/🐍 Python
for loop를 쓸 때 range(1, 1) 처럼 수가 같은 경우, for loop가 동작하지 않는다 📍예시백준 1292번 쉽게 푸는 문제start, end = map(int, input().split())sequence = []def solution(s, e, arr): count = 0 for i in range(1, e + 1): # 1 1 이 입력으로 주어졌을 때 range(1, 1) 이면 반복문 실행 안됨 for j in range(i): arr.append(i) count += 1 if count == end: return sum(arr[s - 1:e])print(solution(..
[Python] sys.stdin.readline() 으로 빠르게 입력받기
·
✏️ Study/🐍 Python
📍사용 이유여러 줄의 입력을 받을 때에는 input() 대신 sys.stdin.readline() 을 사용하는 것이 빠르다 📍사용 예시 (백준 1371 가장 많은 글자)https://www.acmicpc.net/problem/1371 1371번: 가장 많은 글자첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이www.acmicpc.net 여러 줄의 입력을 받는 경우, 문장 뒤에 개행 문자 (\n)가 있기때문에, rstrip() 으로 제거해줘야 한다import sys# 50줄의 입력을 받아 리스트에 저장data = [sys.stdin.readline().rst..
[Python] 10진수를 2진수로 바꾸기
·
✏️ Study/🐍 Python
📍2진수 만들기 구현- 공백 문자열 생성- 원래 수가 0이 되면 종료하는 반복문 생성- 2로 나눈 몫 생성- 2로 나눈 나머지 생성- 나머지를 문자열로 만들고 공백 문자열의 맨 앞에 배치- 반복 INPUT = 7OUTPUT = ""while INPUT != 0: TEMP = INPUT // 2 OUTPUT = str(INPUT % 2) + OUTPUT INPUT = TEMPprint(OUTPUT) # 111"""INPUT TEMP(2로 나눈 몫) OUTPUT(2로 나눈 나머지) 7 3 1 3 1 11 1 0 111..
[Python] 워드 클라우드(word cloud) 만들기
·
✏️ Study/🐍 Python
📍개요Take Me Home, Country Roads 노래 가사를 워드 클라우드로 만들어 어떤 단어가 자주 등장하는지 알아보기 📍전체 코드import wordcloudfrom matplotlib import pyplot as pltsample_text = """Almost heaven, West VirginiaBlue Ridge Mountains, Shenandoah RiverLife is old there, older than the treesYounger than the mountains, growin' like a breezeCountry roads, take me homeTo the place I belongWest Virginia, mountain mamaTake me home, count..
[Python] class가 원소인 배열 데이터 처리
·
✏️ Study/🐍 Python
📍로그인, 로그아웃 이력으로 현재 로그인된 유저 파악하기- 데이터 구조class Event: def __init__(self, event_date, event_type, machine_name, user): self.date = event_date # 시간 self.type = event_type # 로그인 or 로그아웃 self.machine = machine_name # 접속 서버 self.user = user # 유저 - 데이터 예시events = [ Event("2023-01-02 11:38:03", "logout", "webserver.local", "jordan"), Event("2023-01-02 10:19:31", "log..