전체 글 153

[프로그래머스 | python3] 완주하지 못한 선수

programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 1. 첫번째 시도 def solution(participant, completion): pset= set(participant) cset= set(completion) if pset == cset: return [i for i in pset if participant.count(i)>=2][0] else: return list(pset- cset)[0] -..

[프로그래머스 | python3] 폰켓몬

코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 오늘의 교훈: 최대한 간단하게 생각하자! 1. 첫번째 시도: 폰켓몬의 combinations를 만들어서 각 조합의 unique value를 세어 리스트로 만들어 준 뒤, max값을 추출하는 방식을 시도해보았다. 조합을 만들기 위해 itertools패키지의 combinations 함수를 사용했다. from itertools import combinations def solution(nums): iterNum= int(len(nums)/2) lst= list(c..

[R] NLP4kec 오류 해결/ rjava.dll 오류 해결/ error: .onLoad failed in loadNamespace() for 'rJava', details: call: inDL(x, as.logical(local), as.logical(now), ...)

하루 넘게 rJava.dll 오류 때문에 머리 싸매다 드디어 해결하여 감격받아서 글올립니다.. 에러 글 이미지 등은 제가 오류 푸는 데에만 급급하여 캡처를 하지 못한 점 이해바랍니다! 일단 저는 현재 Rstudio를 사용하고 있고 컴퓨터는 windows10 64bit를 사용하고 있습니다. 사건은 바야흐로 NLP4kec 패키지를 사용하기 위해 패키지를 설치하는 데서 발생했습니다. 우선 해당 패키지를 설치하려 하니 EXTPR_PTR ... dll을 찾을 수 없습니다라는 팝업창이 뜨며 다음 오류가 발생했습니다. Error: package or namespace load failed for ‘rJava’: .onLoad failed in loadNamespace() for 'rJava', details: cal..

R 2021.04.16

<정규표현식>자주 사용되는 정규표현식 정리, re.findall과 re.search의 차이

포스트는 edwith강좌 모두를 위한 파이썬 강의를 수강하며 보충 학습한 글입니다. 정규식은 축약된 언어의 한 종류로, 기호로 되어있기 때문에 굉장히 효율적으로 데이터를 뽑거나 찾을 수 있다. 이번 포스팅을 통해 정규식을 정리해보고자 한다. ▶정규식을 사용하기 위해선. . . 우선 import re 명령어를 통해 정규식라이브러리를 불러와야한다. 라이브러리엔 많은 메소드가 있지만, 이 포스팅에선 자주 사용되는 search와 findall메소드를 우선 정리해보고자한다. ▶re.search re.search 메소드는 find()메소드처럼 정규식에 매칭되는 문자열들을 찾을 수 있도록 해준다. 이러한 데이터를 가진 텍스트파일에서 From을 포함한 문자열을 뽑고 싶을 때, find()매서드를 사용하면 코드는 다음과..

python/기타 2021.04.02

내적, 점곱이란 / 파이썬 내적 구현

▶내적이란? 한 벡터가 다른 벡터에 대해 가한 힘에 의해 변화된 스칼라 값을 얻는 곱이라고 할 수 있다. 즉 내적은 한 벡터 w가 벡터 v의 방향에 대해 어느정도의 힘을 가했는지를 알 수 있도록 해준다. 위의 그림에서 내적을 통해 우리는 w가 v벡터에 어느정도의 힘을 가했는지 알 수 있을 것이다. 내적 공식은 다음과 같다. v의 norm(크기) * w의 norm(크기) * cosθ 로 내적 스칼라를 구할 수 있다. 아래의 예시를 보자. (1) 의 경우는 w와 v벡터의 방향이 같은 경우다. 이때 w가 v의 방향에 힘을 가함으로써 변화된 스칼라는 3이라고 볼 수 있다. (2) 는 w와 v의 방향이 다른 경우이다. w가 v의 방향에 가한 스칼라를 구하기 위해 v와 같은 방향인 벡터 a를 구해보자. a의 nor..

confusion matrix(혼돈행렬)과 TP,FP,FN,TN & Precision, Recall, f1-score에 대해

fpr, tpr, fnr, tpr은 roc-curve, f1-score등을 산출해내는 지표로, classification문제에서 모델의 분류 정확도를 평가하기 위해 사용된다. 그렇기 때문에 분류모델을 구축하기 위해선 꼭 짚어두고 가야하는 개념이다. 몇 번을 보고, 배운 개념이지만 자꾸 헷갈리고 찾아보게되어 이 기회에 완벽히 숙지하고 넘어가려한다. ▶confusion matrix와 TP,FP,FN,TN confusion matrix(혼돈행렬)은 단어에서 알 수 있듯이 컴퓨터가 (대표적으로)이진분류 문제를 수행한다고 할때 두개의 클래스를 얼마나 헷갈려하는지를 알 수 있는 지표이다. 열에는 대상의 실제클래스가, 행에는 대상의 예측된 클래스가 위치한다. 각 행렬요소들은 tp, fp, fn, tn으로 구성된다. ..

수학/통계학 2021.02.24

[백준2577] 숫자의개수/ 문자열 하나하나 받아오기/ python

www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net 1차원 배열을 이용한 문제다. ▶입력값을 stdin으로 받아올까했으나, 반복문을 3번 돌리며 바로바로 곱셈연산을 수행하는 것이 연산량을 줄일 수 있지 않을까 하여 반복문 for와 input을 사용했다. 우선 코드와 결과는 다음과 같다. ## 2577 import sys a=1 for i in range(0,3): a*=int(input()) lst= list(str(a)) for i in range(0,10): print(lst.count(str(i))) 곱셈 결과..

[백준2562]최댓값/ read와 readlines의 차이/ python

1차원 배열을 이용한 문제다. ▶이번 문제는 두가지 방식으로 풀어보았다. 첫번째는 내가 자주 사용했던 for문과 input함수를 사용한 방식이다. lst=[] for i in range(0,9): lst.append(int(input())) print(max(lst),lst.index(max(lst))+1, sep='\n') # list.index(val): list배열에서 val원소의 위치를 반환하는 함수 결과는, 역시 이전글에서 언급했듯이 for문과 input을 이용한 코드는 속도도 느리고 코드도 길다. 그래서 전의 문제를 풀면서 알게된 sys.stdin을 해당 문제에서 사용해보고자 했다. 그렇게 작성한 두번째 코드는 다음과 같다. import sys lst= list(map(int,sys.stdin..

첫번째기록- [백준10818] 최소, 최대/ sys.stdin / python

▶문제풀이 1차원 배열을 이용한 문제이다. 처음에는 numpy를 사용해 문제를 풀고자 했는데, 다음과 같은 에러가 떴다. 로컬환경에서 채점되는 것이기 때문에 파이썬 외부 라이브러리는 사용할 수 없다고 한다. 그래서 그냥 리스트 배열을 사용해 문제를 풀었다. num_limit= int(input()) lst= list(map(int,input().split())) lst=lst[0:num_limit] print(min(lst), max(lst), sep=' ') 먼저 input으로 입력받을 수들의 개수를 받아온다. 그 후 공백을 기준으로 개수만큼 값을 받아와야한다. 더 많은 수를 입력했을 때를 대비하여, 앞에서부터 해당 개수까지 입력한 값들만을 추출하여 다시 'lst'에 넣어주었다. 그리고 해당 배열에 대..