파이썬(19)
-
파이썬 math.gcd(Greatest Common Divisor), math.lcm(Least Common Multiple) 최소공배수 ,최대공약수
최대공약수(gcd) : Greatest Common Divisor 최소공배수(lcm) : Least Common Multiple import math print(math.gcd(36, 60)) print(math.lcm(36, 60)) 안에 인수는 2개 들어가야 한다. 결과값. 이미 최대공약수, 최소공배수는 다 나와있는 것이여서 편하다.
2023.08.09 -
백준 2346. 파이썬 데크 문제풀이
from collections import deque n = int(input()) numbers = list(map(int, input().split())) balloons = deque([(i+1, numbers[i]) for i in range(n)]) result = [] while balloons: index, value = balloons.popleft() result.append(index) if not balloons: break if value > 0: for _ in range(value - 1): balloons.append(balloons.popleft()) else: for _ in range(abs(value)): balloons.appendleft(balloons.pop()) ..
2023.08.09 -
파이썬 queue 모듈 사용하기. 백준 2164 파이썬 문제풀이.
import queue cards = int(input()) deck = queue.Queue() for i in range(1, cards+1): deck.put(i) print(list(deck.queue)) 지금 백준 문제를 하고 있는데 파이썬 queue 모듈을 쓰고싶어서 공부중이다. 우선 queue를 import 하고 초기화가 queue.Queue()를 한다. 희한하다. 아마 Queue() 말고 다른 것도 있나보다 아마 deque겠지? 데크라고 한다. 데큐라고 하지말자. list(deck.queue)를 했더니 리스트 형식으로 안에 들어있는 요소들이 모두 나왔다. https://docs.python.org/3/library/queue.html queue — A synchronized queue cl..
2023.08.07 -
백준 9012 파이썬 문제풀이.
import sys def is_balanced(s): stack = [] for char in s: if char == '(': stack.append(char) elif char == ')': #stack에 빈값이 없고(True 이며) stack의 끝자리가 '(' 문자인 경우, if stack and stack[-1] == '(': #맨 마지막 것을 pop 한다. stack.pop() else: return False # not stack = True라는 뜻. return not stack a = int(sys.stdin.readline()) for _ in range(a): s = input().strip() if is_balanced(s): print('YES') else: print('NO') ..
2023.08.07 -
백준 10773 파이썬 문제풀이
import sys a = int(sys.stdin.readline()) Stack = [] result = 0 for _ in range(a): b = int(sys.stdin.readline()) if b != 0: Stack.append(b) else: Stack.pop(-1) print(sum(Stack)) append와 pop의 개념을 확인하는 문제여서 어렵지 않게 마무리했다.
2023.08.07 -
백준 2798 파이썬 문제풀이
import sys a, b = map(int, sys.stdin.readline().split()) arr = list(map(int, input().split())) result = 0 for i in range(a): for j in range(i+1, a): for k in range(j+1, a): if arr[i] + arr[j] + arr[k] > b: continue else: # 일단 저장하고, 그다음 계속 result와 다음 더한 값을 비교하기. result = max(result, arr[i] + arr[j] + arr[k]) print(result) 저 max를 하지 않고 result를 list로 저장해 append하고 max(result) 한 사람도 있었다. 호오~~ 기발하다. h..
2023.08.07