본문 바로가기

반응형

Python

[python] 맥 pypy3 설치 (원하는 버전 설치) 1. pypy3 설치 1) pypy3 다운로드 https://www.pypy.org/download.html Download and Install We provide pre-compiled binaries for many platforms and OSes. There are also pre-compiled binaries available on conda-forge. We have found conda-forge a convenient and cooperative community for distri www.pypy.org 위의 사이트에서 원하는 버전을 os에 맞게 설치합니다~ 저는 7.3.9로 해줬어요! 2) 압축 해제한 후, /usr/local/bin에 폴더를 옮겨줍니다. 3) cd /usr/loca.. 더보기
[백준] 24060 - 알고리즘 수업 - 병합 정렬 1 (파이썬) 1. 문제 2. 코드 a, k = map(int, input().split()) l = list(map(int, input().split())) n = 0 temp = [] tmp = [] def merge_sort(p, r): global l if p < r: q = int((p+r)/2) merge_sort(p, q) merge_sort(q+1, r) merge(p, q, r) def merge(p, q, r): global temp tmp = [] i = p j = q+1 while i 더보기
[백준] 2981 - 검문 (파이썬) 1. 문제 2. 코드 import math n = int(input()) l = [] gcd = 0 m = [] for _ in range(n): num = int(input()) l.append(num) gcd = abs(l[1]-l[0]) for i in range(2, n): gcd = math.gcd(abs(l[i] - l[i-1]), gcd) for i in range(2, int(math.sqrt(gcd)) + 1): if gcd % i == 0: m.append(i) m.append(gcd//i) m.append(gcd) m = list(set(m)) m.sort() for i in m: print(i, end=' ') 3. 풀이 생각보다 어려운 문제이다. 시간 초과가 나기 쉬워서 잘 고민하.. 더보기
[백준] 14425번 - 문자열 집합 (python 파이썬) 1. 문제 2. 코드 원래 코드 (list 사용) n, m = map(int, input().split()) s = [] cnt = 0 for i in range(n): s.append(input()) for i in range(m): test = input() for j in range(n): if test == s[j]: cnt+=1 print(cnt) 정답 코드 (set 사용) n, m = map(int, input().split()) s = set() cnt = 0 for i in range(n): s.add(input()) for i in range(m): test = input() if test in s: cnt +=1 print(cnt) 3. 주요 알고리즘 파이썬에서는 자료구조( list, .. 더보기
[백준] 10815번 - 숫자 카드 (파이썬) 1. 문제 2. 코드 num = [0 for _ in range(20000000)] n = int(input()) n_list = list(map(int, input().split())) for i in n_list: num[i+10000000] = 1 m = int(input()) m_list = list(map(int, input().split())) for i in m_list: print(num[i+10000000], end = ' ') 3. 설명 주요 포인트는 -10000000 ~ 10000000까지의 숫자 범위이므로 총 20000000칸의 list를 만들어서 계산한다. 무슨 말인지 모르겠다면 아래의 예시를 보자. 즉 input이 5개 숫자이고, 5, 8, 9, -10, 10이라면 num[100.. 더보기
[백준] 10866번 - 덱 1. 문제 2. 코드 from collections import deque import sys deq = deque() n = int(input()) for i in range(n): s = sys.stdin.readline() #push_front if s[1] == 'u' and s[5] == 'f': s, num = s.split() num = int(num) deq.appendleft(num) #push_back elif s[1] == 'u' and s[5] == 'b': s, num = s.split() num = int(num) deq.append(num) #front elif s[0] == 'f': if len(deq) == 0: print(-1) continue print(deq[0]) #.. 더보기
[파이썬] python EOF (입력 끝날 때까지 출력하기) 입력이 끝날 때까지 읽어들이려면 except (예외처리)를 이용하면 된다. 정상적일 때는 try 문의 내용을 수행하다가 오류가 발생하면 except 문의 내용을 처리한다. 아래와 같이 사용하면 된다. 아래의 코드는 입력이 끝날 때까지 입력을 받아서 그대로 출력하는 코드이다. while True: try: n = input() if n == "": break print(n) except: break 더보기
[백준] 18258 - 큐 2 1. 문제 2. 코드 from collections import deque import sys n = int(input()) l = deque([]) for i in range(n): s = sys.stdin.readline() #s = input() #push if s[1] == 'u': s, num = s.split() l.append(int(num)) #pop elif s[0] == 'p': if len(l) == 0: print(-1) continue #temp = l[start] temp = l.popleft() #start += 1 print(temp) #size elif s[0] == 's': print(len(l)) #empty elif s[0] == 'e': if len(l) == 0: .. 더보기

반응형