일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- web
- CPU 스케줄링
- memory
- 파이썬
- Java
- 알고리즘
- 코드업
- codeup
- 자료구조
- error
- OS
- Redux
- 백준
- Spring
- 리덕스장바구니
- C++
- 기초100제
- 협업
- 스프링
- react-redux
- 정렬
- 타입스크립트
- js to ts
- Operating System
- 일상
- 분할메모리할당
- 토이프로젝트
- 공부
- react
- 프로그래머스
- Today
- Total
목록Algorithm (180)
감자튀김 공장🍟
✔ 문제 ✔ 풀이 import sys import math input = sys.stdin.readline n = int(input()) nums = [int(input()) for _ in range(n)] nums.sort() temp = [] res = [] for i in range(1, n): # A-B, B-C 저장 temp.append(nums[i] - nums[i-1]) a = temp[0] for i in range(1, len(temp)): # A-B, B-C 최대 공약수 구하기 a = math.gcd(a, temp[i]) for i in range(2, int(a ** 0.5) + 1): # 탐색 범위를 줄이기 위해 제곱근 사용 if a % i == 0: res.append(i) re..
✔ 문제 ✔ 풀이 👾 유클리드 호제법 import sys input = sys.stdin.readline def gcd(x, y): while y > 0: x, y = y, x % y return x def lcm(x, y): return x * y // gcd(x, y) t = int(input()) for _ in range(t): a, b = map(int, input().split()) print(lcm(a, b)) 👻 math 라이브러리 사용 import math import sys input = sys.stdin.readline t = int(input()) for _ in range(t): a, b = map(int, input().split()) print(math.lcm(a, b))
✔ 문제 ✔ 풀이 import math a, b = map(int, input().split()) print(math.gcd(a, b)) print(math.lcm(a, b)) ✔ 후기 math 라이브러리를 사용하여 gcd, lcm 함수를 사용해 최대공약수와 최소공배수를 구할 수 있다. 라이브러리를 사용하지 않고 gcd, lcm 함수를 구현 하는 방법은 아래 링크를 참고하면 된다. https://good-potato.tistory.com/88 [Python] 유클리드 호제법으로 최대 공약수, 최소 공배수 구하기 사실 파이썬을 사용하면 유클리드 호제법 없이 math 라이브러리를 사용하여 빠르게 최대공약수와 최소공배수를 구할 수 있다. ✅ math 라이브러리 사용 import math a, b = map(i..
✔ 문제 ✔ 풀이 import sys input = sys.stdin.readline n = int(input()) divisors = list(map(int, input().split())) divisors.sort() print(divisors[0] * divisors[-1]) ✔ 설명 X의 약수 개수와 약수들을 입력받게 되는데, 입력받은 약수들을 정렬한 후 가장 작은 값과 가장 큰 값을 곱하면 X를 구할 수 있다. ex) 입력값: 6 3 4 2 12 6 8 >> 정렬 2 3 4 6 8 12 x = 2 * 12
✔ 문제 ✔ 풀이 import sys input = sys.stdin.readline while True: x, y = map(int, input().split()) if x == 0 and y == 0: break if y % x == 0: print("factor") elif x % y == 0: print("multiple") else: print("neither") ✔ 후기 (◕ヮ◕)〜⊹
✔ 문제 ✔ 풀이 import sys import math input = sys.stdin.readline t = int(input()) for _ in range(t): x1, y1, x2, y2 = map(int, input().split()) p = int(input()) count = 0 for _ in range(p): cx, cy, cr = map(int, input().split()) dis1 = math.sqrt((x1 - cx) ** 2 + (y1 - cy) ** 2) dis2 = math.sqrt((x2 - cx) ** 2 + (y2 - cy) ** 2) if cr > dis1 and cr > dis2: pass elif cr > dis1: count += 1 elif cr > dis2..
✔ 문제 ✔ 풀이 # https://www.acmicpc.net/problem/1002 import sys import math input = sys.stdin.readline t = int(input()) for _ in range(t): x1, y1, r1, x2, y2, r2 = map(int, input().split()) dis = math.sqrt((x1-x2) ** 2 + (y1-y2) ** 2) if dis == 0 and r1 == r2: print(-1) elif abs(r1 - r2) == dis or r1 + r2 == dis: print(1) elif abs(r1 - r2) < dis < (r1 + r2): print(2) else: print(0) ✔ 설명 원의 방정식과 중심거리..
✔ 문제 ✔ 풀이 import math r = int(input()) uclid = r * r * math.pi taxi = 2 * r * r print(f"{format(uclid, '.6f')}") print(f"{format(taxi, '.6f')}") ✔ 후기 유클리드 기하학과 택시 기하학을 알아야 공식을 사용해 풀 수 있는 문제이다... 기하 안배워서 네?? 네?? 상태로 위키에 적힌 글 읽어봤는데 비유클리드 기하학부터 눈물 났다.. 그래서 짧게 설명을 해준 분의 블로그를 참고해서 풀었다. (사실 기하 안배워서 기하1,2 문제 안풀려고 했던건데... 그렇게 됐다) 참고 링크 https://yoonsang-it.tistory.com/15 백준 3053번 파이썬 풀이: 택시 기하학 백준 3053번 ..
✔ 문제 ✔ 풀이 import sys input = sys.stdin.readline k = int(input()) length, small = [], [] x, y = [], [] for i in range(6): w, l = map(int, input().split()) length.append([w, l]) if length[i][0] == 1 or length[i][0] == 2: # 가로 x.append(length[i][1]) if length[i][0] == 3 or length[i][0] == 4: #세로 y.append(length[i][1]) for i in range(6): # 작은 사각형의 변 구하기 if length[i][0] == length[(i+2)%6][0]: small.a..
✔ 문제 ✔ 풀이 while True: length = list(map(int, input().split())) a = max(length) length.remove(a) c = min(length) length.remove(c) b = length[0] if a == 0 and b == 0 and c == 0: break if b ** 2 + c ** 2 == a ** 2: print("right") else: print("wrong") ✔ 설명 세 변의 길이를 list로 입력 받은 후 가장 긴 변을 a로 짧은 변을 c로 주고 list에서 해당 값들을 제거한다. 변 b의 길이는 list에 하나 남은 수이기 때문에 list[0]의 값을 준다. a, b, c로 피타고라스 정의를 확인하여 정답을 출력하면 된다.