목록전체 글 (150)
Just Fighting
https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 주어진 배열에서 숫자 3개를 더했을 때 소수가 되는 경우의 개수를 리턴하라. itertools의 combinations를 사용하면 될 것이라고 생각했고, 문제를 쉽게 해결할 수 있었다. combinations를 이용해 숫자 3개의 조합을 모두 구하고, 그 조합의 합을 구했다. 그리고 소수를..
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 수 정렬하기 N은 1부터 1,000,000이고, N개의 숫자는 모두 절대값이 1,000,000보다 같거나 작음. sort()가 O(nlogn)이라는 것을 알았다,, 그리고 input()으로 써서 틀린걸 한참을 돌아갈뻔했다. 잊지말자 sys.stdin.readline() import sys n = int(input()) num = [] for i in ..
데이터 불러오기는 아래 링크 참고▼ 2022.02.24 - [Big Data] - [Spark] pyspark로 hdfs 데이터 불러오기 먼저 라이브러리부터 import from pyspark.ml.classification import NaiveBayes from pyspark.ml.evaluation import MulticlassClassificationEvaluator from pyspark.ml.feature import VectorAssembler 공식 문서에서는 아래 사진과 같은 데이터를 사용하기 때문에 바로 데이터를 분리하고 모델을 생성하지만 내가 가진 데이터는 그렇지 않기 때문에 VectorAssembler 과정을 거쳐야 한다. # feature 묶기 assembler = VectorAs..
2022.03.26 - [ETC] - [Git] 로컬 저장소 GitHub에 연동 & 커밋하기 이전에 로컬 저장소를 깃허브에 연동하고 커밋하는 것을 작성한 적이 있다. 내가 적은 방식대로 커밋을 하는데, 잔디가 심어지지 않아서 왜인가 했더니 브랜치를 만들어주고 푸시해야하는데 그렇지 않아서 그런 것 같다. git branch 브랜치이름 git checkout 브랜치이름 git add . git commit -m "커밋 내용" git push origin 브랜치이름
나이브 베이즈 알고리즘은 주어진 결과에 대해 예측변수 값을 관찰할 확률을 사용하여, 예측변수가 주어졌을 때, 결과 Y=i를 관찰할 확률을 추정한다. 즉, 사건 Y가 일어났을 때 사건 X가 관측될 확률을 이용하여 사건 X가 관측됐을 때 사건 Y가 일어날 확률을 추청하는 것이다. 나이브 베이즈에 대해서 공부를 하기 위해서는 먼저 알아야 하는 개념들이 있다. 두 사건 A, B가 있다고 한다면 A는 B에 속하는 부분과 B에 속하지 않는 부분으로 나누어진다. 여기에 조건부 활용을 사용한다면 A의 확률은 아래 식과 같이 나타낼 수 있다. 즉, 사건 A의 확률은 B가 발생했을 때의 A가 일어날 확률과 B가 발생하지 않았을 때 A가 일어날 확률의 가중평균이다. 이번에는 사건 A와..
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 주어진 수를 오름차순으로 정렬하면 된다. 시간 제한 : 5초, 메모리 제한 : 8MB 시간과 메모리 제한이 까다로워서 기본적인 정렬로는 힘들 것이라고 생각했다. 그래서 heaqp를 시도해 보았으나 실패^^ 방법이 잘 떠오르지 않아 검색의 도움을 받았다*^^* sort()와 heapq 모두 실패 n = int(input()) num = [] for i in rang..
https://www.acmicpc.net/problem/1357 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net 어떤 수의 역순을 만드는 함수를 Rev(x)라고 할 때, 주어진 두개의 숫자 X, Y를 이용해 Rev(Rev(X)+Rev(Y))를 리턴해라. Rev() 함수를 만들어서 풀면 된다고 생각했고, 문자열을 뒤집는 방법을 이용해 풀면 쉽게 풀릴 것이라고 생각했다. 숫자를 문자열로 바..
이전 글 ▼ 2022.06.01 - [ETC] - LSTM을 이용한 텍스트 생성 연습(1) - 데이터 전처리 모델을 만들기에 앞서 먼저 단어 집합을 만들어주었다. 모든 문장들에 있는 단어들을 Tokenizer를 이용해 번호를 붙여준다. # 단어집합 만들기 tokenizer = Tokenizer() tokenizer.fit_on_texts(preprocessed_headline) 그리고 단어집합의 크기를 구한다. 단어 집합의 크기는 3493개였으나, 예제에서 1을 더해서 3494개라고 했다. 그 이유는 위에 사진에서 번호가 1부터 매겨져 있기 때문에 인덱싱을 위해서 1을 더해준다고 한다. (참고: https://datascience.stackexchange.com/questions/93651/reason-..
2022.04.07 - [ETC] - RNN을 이용한 텍스트 생성 연습 이전에 RNN을 이용한 텍스트 생성을 연습해 본 적이 있다. 이번에는 그 뒷 내용인 LSTM을 이용해서 텍스트 생성을 연습해보았다. https://wikidocs.net/45101 6) RNN을 이용한 텍스트 생성(Text Generation using RNN) 다 대 일(many-to-one) 구조의 RNN을 사용하여 문맥을 반영해서 텍스트를 생성하는 모델을 만들어봅시다. ##**1. RNN을 이용하여 텍스트 생성하기** 예를 ... wikidocs.net 이 링크의 중간 부분에 있는 'LSTM을 이용하여 텍스트 생성하기' 파트를 보고 따라했다. 먼저 링크 속에 주어진 데이터를 다운 받고 데이터를 출력해보았다. 필요한 라이브러리를 ..
https://www.acmicpc.net/problem/1173 1173번: 운동 첫째 줄에 다섯 정수 N, m, M, T, R이 주어진다. www.acmicpc.net 운동을 N분 하는데 필요한 시간의 최솟값을 출력해라. N, m, M, T, R이 주어진다. N : 운동 시간 m : 초기 맥박이자 최소 맥박. 맥박은 m보다 작아질 수 없다. M : 최대 맥박. 맥박은 M을 넘으면 안된다. T : 운동 시 추가되는 맥박크기 R : 휴식 시 감소되는 맥박 크기 현재맥박+T가 M보다 작거나 같을 때만 운동을 할 수 있다. 휴식해서 현재맥박-R이 m보다 작아진다면 m이 된다. 운동을 할 수 없으면 -1을 리턴. 처음에는 단순하게 운동시간에 맞게 증가하는 맥박을 전부 구해서..