[Python] 최종 원소가 int인 2차원 리스트 만들기
·
✏️ Study/🐍 Python
📍참고https://www.acmicpc.net/problem/9063 9063번: 대지첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. www.acmicpc.net 📍코드import sysN = int(input())# data = [ [x1, y1], [x2, y2], ... ]data = [list(map(int, sys.stdin.readline().rstrip().split())) for i in range(N)]xs = []ys = []for row in data: x, y = row xs.append(x) y..
[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..