분류 전체보기 (68) 썸네일형 리스트형 [백준 4948] 베르트랑 공준 python 문제 풀이 처음에 입력받은 수에 대해서 숫자를 세는 방식으로 문제를 풀었는데 시간 초과가 되었다. 가장 큰 수(123456)까지 소수가 아닌지 기억한 후 입력받은 구간에 대해서 소수의 개수를 세는 방식으로 바꿔서 통과되었다. 통과된 풀이 sosu = [0] * (123456 * 2 + 1) def isPrime(num): if num == 1: return False for i in range(2, int(num ** 0.5) + 1): if num % i == 0: return False return True for i in range(2,len(sosu)): if isPrime(i): sosu[i] = 1 while True: n = int(input()) if not n: break print(su.. [백준 1929] 소수 구하기 (+에라토스테네스의 체) python 문제 풀이 시간초과가 나와서 구글링해보니 에라토스테네스의 체를 이용해야 통과되는 문제이다. 에라토스테네스의 체 : 에라토스테네스의 체는 고대 그리스 수학자 에라토스테네스가 발견한 소수를 찾는 방법이다. 숫자의 제곱근 까지만 약수의 여부를 검증하는 방식이다. 1. 먼저 2를 제외한 2의 배수를 제거 2. 3을 제외한 3의 배수 제거 3. 5를 제외한 5의 배수 제거... 이런식으로 모든 구간에 대해 반복하면 소수만 남는다. 이것은 자신의 제곱근 까지만 약수의 여부를 검증하는 식으로 구현할 수 있다. (구글링을 통해 알게됨) 통과 된 풀이 def isPrime(num): if num == 1: return False else: for i in range(2, int(num ** 0.5) + 1): if nu.. [백준 11653] 소인수 분해 python 문제 풀이 통과된 풀이 가장 작은 수부터 시작 나누어 떨어지지 않을 때 까지 그 수로 나누어주면 그 수의 배수는 앞으로 체크안될테니까 소수로만 나누어짐 N = int(input()) m = 2 # 1은 소수가 아니니까 2부터 시작 while N != 1: if N % m == 0: print(m) N = N // m else: m += 1 시간 초과 풀이 n보다 작은 수 중 가장 작은 소수를 찾아서 계속 나누어주는 방법 error를 두어 소수가 아닌 경우 체크 n = int(input()) # 소인수 분해할 변수 num = 1 # 소수를 저장할 변수 # n보다 작은 수 중 가장 작은 소수부터 찾아 나가기 while n >= num: # num보다 n이 커지면 루프 종료 num += 1 # 1은 소수가 아.. [백준 1011] Fly me to the Alpha Centauri 파이썬 python 문제 나의 풀이 소스코드 t = int(input()) for _ in range(t): x, y = map(int, input().split()) distance = y - x # y와 x사이의 거리 tmp = 0 # 이동 거리 cnt = 0 # 공간 장치 이동 횟수 moving = 0 # 반복 횟수 while tmp < distance: cnt += 1 if cnt % 2 != 0: moving += 1 tmp += moving print(cnt) 해설 백준 단계별 풀어보기 하는 중 안풀려서 며칠 고민했던 문제다. 수학 유형은 직접 나열해보면서 규칙성을 파악해야한다. 특히, 문제에서 종료조건을 제대로 설정안해서 처음에 비효율적이고, 시간 초과가 나오는 코드를 만들었다. 1. 공간 장치 이동 횟수는 (.. 단어 표현 - 어떻게 자연어를 컴퓨터에게 인식시킬 수 있을까 ? 출처 : 텐서플로와 머신러닝으로 시작하는 자연어 처리, https://wikidocs.net/31767 단어표현이란 단어 표현은 모든 자연어 처리 문제의 기본 바탕이 되는 개념이다. 기존에 컴퓨터는 텍스트를 유니코드 혹은 아스키 코드 방식으로 인식했다. 이 방법을 사용하면 텍스트를 이진화 된 값으로 인식한다. 이 경우 언어적인 특성이 전혀 없이 컴퓨터가 문자를 인식하기 위해 만들어진 값이므로 자연어 처리를 위해 만드는 모델에 적용하기에 부적합하다. 어떤 방식으로 텍스트를 표현해야 자연어 처리 모델에 적용할 수 있을까? 단어의 표현 방법은 크게 두 가지가 있다. 1. 국소 표현 (Local Representation)방법 이산 표현 (Discrete Representation) 각 단어에 숫자를 맵핑하여 .. 사이킷런을 이용한 한국어 특징 추출 및 토크나이징 (+ KoNLPy 형태소 분석기) 다음 내용은 위키북스의 책을 공부하며 정리한 내용입니다. 사이킷런을 이용한 특징 추출 자연어 처리에서 특징 추출이란 텍스트 데이터에서 단어나 문장들을 어떤 특징 값으로 바꿔주는 것을 의미한다. 기존에 문자로 구성돼 있던 데이터 모델에 적용할 수 있도록 특징을 뽑아 어떤 값으로 바꿔서 수치화한다. 텍스트 데이터를 수치화하는 방법 CountVectorizer : 각 텍스트에서 횟수를 기준으로 특징을 추출하는 방법 TfidfVectorizer : TF-IDF라는 값을 사용해 텍스트에서 특징을 추출 HashingVectorizer : CounterVectorizer와 사용방법은 동일하지만 텍스트를 처리할 때 해시 함수를 사용하기 때문에 실행 시간을 크게 줄일 수 있음. 텍스트의 크기가 클수록 HashingVec.. [백준 2869] 달팽이는 올라가고 싶다 python 문제 풀이 쉬운 문제일 줄 알았는데 시간 초과가 나기 쉬운 문제였다. 그래서 정답률이 낮은듯.. 밤이 되기 전에 막대를 모두 올라가면 날짜 카운팅을 멈춰야한다. 나의 풀이 밤이 되기 전에 도착할 수 있는 것을 고려하면 다음과 같은 식을 세울 수 있다. 막대 길이에서 달팽이가 밤이 되기 전에 가는 만큼 뺀 길이(v-a)를 밤이 지나서 이동하는 거리(a-b)만큼 나누고, 그거보다 가장 큰 정수를 구하면 달팽이가 밤이 지나서 이동하는 길이가 된다. 거기에 다시 밤이 되기 전에 가는 길이인 1을 더하면 최종 결과값을 도출할 수 있다. import math a, b, v = map(int, input().split()) day = (v-a)/(a-b) + 1 print(math.ceil(day)) 80ms 나왔다.. [백준 1157] 단어 공부 python 문제 풀이 풀이 소스코드 1 아스키코드를 이용하여 알파벳 순서에 맞는 인덱스에 알파벳의 개수를 카운팅 # 단어 공부 word = input().upper() cnt = [0] * 26 # 문자별 카운팅할 배열을 생성 for s in word: # 카운팅 cnt[ord(s)-65] += 1 max_idx = 0 # max값 인덱스 찾기 for i, c in zip(range(26),cnt): if c > cnt[max_idx]: max_idx = i # 출력하기 if cnt.count(cnt[max_idx]) > 1: print('?') else: print(chr(max_idx+65)) 다른 풀이 리스트 인덱스 이용 words = input().upper() unique_words = list(set(w.. 이전 1 ··· 3 4 5 6 7 8 9 다음