Loading...

[프로그래머스] h-index (파이썬, javascript)

1. javascript 가장 큰 인용 가능 수 =논문 개수, 최소=0 나는 완전탐색으로 했다 function solution(citations) { var answer = 0; for(let i=citations.length;i>=0;i-=1){ const arr=citations.filter(x=>x>=i); if(arr.length>=i && citations.length-i0: cnt=0 for c in citations: if c>=idx: cnt+=1 if cnt>=idx and len(citations)-cnt

[프로그래머스] 짝지어 제거하기 (파이썬, javascript)

o(n) 시간 안에 해결해야 되는 문제들을 잘 못 푸는데 이런 방법이 있다는 것을 알았다 여기저기 쓰일 것 같으니 잘 봐놔야지 1. 파이썬 풀이 def solution(s): answer = [] for i in range(len(s)): if len(answer)==0: answer.append(s[i]) elif answer[-1]==s[i]: answer.pop() else: answer.append(s[i]) if len(answer): return 0 else: return 1 2. javascript function solution(s) { var answer = 0; const stack=[]; for(let i=0;i

[You Don't know JS] part 2-1 스코프와 클로저 - 스코프란 무엇인가 정리

스코프 특정 장소에 변수를 저장하고 나중에 그 변수를 찾는데 정의된 규칙의 집합 컴파일러 자바스크립트는 사실 컴파일러 언어이다. (일반적으로 동적, 인터프리터 언어로 분류됨) 다른 전통적인 컴파일러 언어처럼 코드를 미리 컴파일하거나 그 결과를 분산 시스템에서 이용할 수는 없다 자바스크립트 엔진이 전통적인 컴파일러 언어에서 하는 컴파일러 역할을 대부분 처리한다 전통적인 컴파일러 처리 과정 소스코드가 실행되기 전에 보통 3단계를 거치는데, 이를 컴파일레이션이라고 한다 1. 토크나이징/렉싱 문자열을 나눠 토큰이라는 의미있는 조각으로 만드는 과정 var a=2; => var / a / = / 2 / ; 토크나이저가 상태 유지 파싱 규칙을 적용해 a가 별개의 토큰인지 다른 토큰 일부인지 파악한다면 그것은 렉싱이다..

프로그래머스 순위 (파이썬, set)

def solution(n, results): answer = 0 win={x:set() for x in range(1,n+1) } lose={x:set() for x in range(1,n+1)} for winner,loser in results: win[winner].add(loser) lose[loser].add(winner) for i in range(1,n+1): for winner in lose[i]: win[winner].update(win[i]) for loser in win[i]: lose[loser].update(lose[i]) for i in range(1,n+1): if len(lose[i])+len(win[i])==n-1: answer+=1 return answer

프로그래머스 가장 먼 노드 (파이썬, bfs)

vis배열을 -1로 초기화시키고 bfs를 돌며 vis가 -1인 원소들을 집어넣으며 현재 길이를 vis배열에 다시 집어넣는다 from collections import deque def solution(n, edge): answer = 0 vis=[-1]*(n+1) adj=[[] for _ in range(n+1)] for e in edge: adj[e[0]].append(e[1]) adj[e[1]].append(e[0]) q=deque([[1,0]]) vis[1]=0 while q: cur,cnt=q.popleft() for a in adj[cur]: if vis[a]!=-1: continue vis[a]=cnt+1 q.append([a,vis[a]]) return vis.count(max(vis))

프로그래머스 단속카메라 (그리디, 파이썬)

내림차순으로 정렬하고 가장 위치가 큰 애부터 passed배열에 넣고 단속카메라에 걸리는 애들을 모두 passed에 넣으며 현재 존재하는 카메라를 만나지 못하는 애들의 진입점을 새로운 카메라 위치로 넣어준다 포인트 : for ~ else 문법, set 문법 def solution(routes): answer = 0 routes=sorted(routes,reverse=True) print(routes) camera=[routes[0][0]] passed=[0] while len(passed)!=len(routes): for i,r in enumerate(routes): if i in passed: continue for c in camera: if r[0]

프로그래머스 입국심사 (파이썬, javascript, 이분탐색)

l, r은 시간 기준이며 모든 사람이 다 처리될 수 있는 최소 시간을 구해준다 mid(기준 시간)을 각 줄에서 처리할 수 있는 시간으로 나눠주면 전체 처리된 인원 수가 나오게 된다 1. 파이썬 def solution(n, times): l=min(times)*n//len(times) r=max(times)*n//len(times) answer=r while l=n: if answer>mid: answer=mid r=mid-1 else: l=mid+1 return answer 2. javascript 사람 수가 n보다 큰 경우도 시간을 갱신하는 조건이다. 가장 오래는 걸리는 시간을 right으로 해서 전체 시간을 각 시간으로 나눠준 것으로 사람 수를 계산한다. function solution(n, time..

디스크 컨트롤러 (파이썬)

c++에서 파이썬으로 바꾸는 중인데 c++보다 쉽다고 생각하다가도 가끔 잘 안되는 부분은 어렵다 풀이 : 바로 실행할 수 있는 일들을 우선순위큐에 넣어주고 없으면 현재 시간을 1씩 증가시킨다 import heapq def solution(jobs): answer = 0 count,last,answer=0,-1,0 heap=[] jobs.sort() time=jobs[0][0] while count

2020. 7. 26. 05:09

heroku mysql와 연동해서 webpak+express 프로젝트 배포하기 (config파일 설정, 배포편)

프로젝트에서도 config 파일을 수정해줍니다 여기서부터 에러가 생기는 부분이라 짜증나니 해주시는게 좋아요 보통 .gitignore파일에 config파일을 추가해서 비밀번호 등을 숨길텐데 히로쿠 배포하면 이 config모듈이 없다고 에러나요 -_-++ 이자식.. 그렇다고 아이디 비밀번호를 공개할 수는 없는일이죠 stackoverflow보고 해결해보았습니다 .env파일로 환경변수를 만들어주고 가져오는 방식으로 해야합니다 .env파일을 만들고 거기에 필요한 환경변수를 넣어줘요 저희 프로젝트의 config파일은 이렇습니다 dotenv를 설치해줘야 가져올 수 있어요 heroku 페이지 settings 탭에도 다시 와서 config vars를 설정해줍니다 저는 해줘야한다고 읽어서 했는데 안해도 되는지 모르겠네요 ..

2020. 7. 26. 04:33

heroku mysql 연동해서 webpack + express 프로젝트 배포해보기👀 (heroku mysql연동편)

2주차 프로젝트는 투두리스트를 만드는 프로젝트를 진행했습니다 api없이 드래그앤드랍을 구현하는 게 어려웠던 ㅠㅠ 프로젝트였어요 중간 중간 버그파티라 총체적 난국이었는데 저는 배민적인 B급 감성을 디자인에 넣으면서 재밌게 해보려고 했습니다 ㅋ_ㅋ 배포한 주소 https://todo-15.herokuapp.com/ 개발하면서 aws의 mysql서버를 사용했는데요 배포를 하면서 heroku의 mysql서버와 새로 연동했습니다. (테이블을 새로 만들어줘야해요) mysql 연동까지는 쉬운데 배포할 때 30분만에 끝날 줄 알았더니 왜인걸 황금같은 토요일에 무수한 에러를 ㅠㅠ... # heroku mysql 연동부터 해보겠습니다 heroku 페이지에 들어가서 새로운 앱을 만들어주시고 overview탭 밑에 confi..