Python3 로 코딩테스트 채점할 때 종종 메모리초과가 발생한다. 구현방법이 맞다면, input() 받아오는 방법을 변경하면 해결 가능하다. input() => sys.stdin.readline() 으로 변경 11404 플로이드 INF 최대값 수정 sys.stdin.readline() 으로 변경 10989 수 정렬하기 3 기존의 정석 counting sort 알고리즘을 간소화 (for문 최소화) sys.stdin.readline() 으로 변경 참고자료 [Python 문법] 파이썬 입력 받기(sys.stdin.readline) 파이썬으로 코딩 테스트를 준비한다면, 반드시 알아야 할 입력방식인 sys.stdin.readline()에 대한 정리 입니다. velog.io
인덱싱 비교 리스트 슬라이싱 join 함수로 리스트 안의 문자열 합치기 arr = list(input()) cnt1, cnt2 = 0, 0 for i in range(len(arr)-3+1): if ''.join(arr[i:i+3]) == "KOI": cnt1 += 1 elif ''.join(arr[i:i+3]) == "IOI": cnt2 += 1 print(cnt1) print(cnt2) # 리스트의 문자열을 합치는 join 함수 # a = ['a', 'b'] # b = ''.join(a) # print(b) #=> 'ab'
JUNGOL www.jungol.co.kr # 첫 번째 수를 최대공약수(gcd)로 정하고 두 번째 수부터 이전까지의 최대공약수(gcd)와 현재 배열의 값(a[i])의 최대공약수를 구하여 다시 gcd에 저장한다. # 이러한 작업을 마지막까지 반복하면 모든 수의 최대공약수가 구해진다. # 최소공배수도 같은 방법으로 구할 수 있다. 결론: 최대공약수 부분은 이해가 되는데 최소공배수 부분이 이해가 잘 되지 않는다. 최소공배수는 기존의 최소공배수에 새로운 정수를 곱하고 그 둘의 최대공약수로 나눈 수라고 한다. 계산해보면 5, 10, 15 라 할 때, 5와 10의 최소공배수는 5이다. 5와 15의 최소공배수를 구하려면 기존 최소공배수 5 x 15 = 75 이것을 5와 15의 최대공약수인 5로 나누면 75 // 5 ..
일반 풀이 def gcd_get(a, b): GCD = 1 for i in range(1, 10001): if a % i == 0 and b % i == 0: if i > GCD: GCD = i aa = a // GCD bb = b // GCD print(GCD) print(aa * bb * GCD) 유클리드 호제법으로 최대공약수(GCD) 구하기 # 유클리드 호제법 # A를 B로 나눈 나머지가 r이라면 A와 B의 최대공약수는 B와 r의 최대공약수와 같다. # GCD(30, 18) = GCD(18, 12) = GCD(12, 6) # 즉, 30과 18의 최대공약수는 12와 6의 최대공약수와 같다. 두 수의 곱 = 최대공약수(LCM) x 최소공배수(GCD) # 유클리드 호제법 # A를 B로 나눈 나머지가 r이..
JUNGOL www.jungol.co.kr 문제포인트 제곱근 활용한 메모리초과 방지 => 정수 N의 약수는 1부터 N의 제곱근까지 구하고, 정수 N에서 약수를 나눈 수를 추가하면 된다. 10 * 10 = 100 인 경우, 10이 두 번 나오는 것을 방지하기 위해 if조건문 처리 from math import sqrt N = int(input()) ans = [] for i in range(1, int(sqrt(N))+1): # for i in range(1, int(N ** 0.5)+1): if N % i == 0: ans.append(i) if N // i != i: # 10 * 10 = 100인 경우 중복 ans.append(N // i) ans.sort() for num in ans: print(..
JUNGOL www.jungol.co.kr n진수의 각 자릿수 구하기 10진수가 385라고 할 때, 일의 자리는 5 + 10^0 십의 자리는 8 + 10^1 백의 자리는 3 + 10^2 이므로 거꾸로 각 자리수를 구하려면 일의 자리는 385를 10^0 로 나눈 몫(385)를 10으로 나눈 나머지 => 5 십의 자리는 385를 10^1로 나눈 몫(38)을 10으로 나눈 나머지 => 8 백의 자리는 385를 10^2로 나눈 몫(3)을 10으로 나눈 나머지 => 3 이 된다. a = int(input()) b = int(input()) # n진수 각 자릿수 구하기 n = 10 ans3 = a * (b // (n ** 0) % n) ans4 = a * (b // (n ** 1) % n) ans5 = a * (b..
JUNGOL www.jungol.co.kr 문제포인트 공백이 있는 input 받기 거꾸로 출력하기 range의 -1 step 활용 문자열을 input.split()으로 받아올 때 리스트로 받고싶은 경우 이하 3가지 중 하나로 받으면 된다. input.split() 자체에 [] 대괄호로 리스트를 씌우면 이중리스트가 되어버리니 주의하자. # input = 'beauty and the beast' word_list = [input().split()] # [['beauty', 'and', 'the', 'beast']] word_list = input().split() word_list = [x for x in input().split()] word_list = list(input().split()) # ['be..
JUNGOL www.jungol.co.kr 문제포인트 공백넣어 우측정렬 객체지향적으로 인스턴스를 생성하였습니다. class Item: def __init__(self, name, count, price, rate): self.name = name self.count = count self.price = price self.rate = rate pen = Item('pen', 20, 100, 50.5) note = Item('note', 5, 95, 35.3) eraser = Item('eraser', 110, 97, 14.2) print('item'.rjust(10, " "), end='') print('count'.rjust(10, " "), end='') print('price'.rjust(10, "..
- Total
- Today
- Yesterday
- ssafy후기
- 싸피
- 상업용무료폰트
- 코딩도서
- 개발자도서추천
- 폰트
- 개발언어순위
- 브왈라
- 깃허브계정2개
- ssafy6기
- intj여자
- 임대차3법
- 개발도서추천
- 폰트추천
- 디즈니얼굴
- 개발자커리
- 개발자로드맵
- 무료폰트추천
- 클린코더
- 한글무료폰트추천
- ssafy결과
- ssafy합격후기
- 개발자
- SSAFY
- 개발자책추천
- 클린코드
- 맥과윈도우로깃허브
- 깃허브계정
- 싸피6기
- 개발언어추천
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |