전체 글 77

Github에서 react 프로젝트 호스팅하기 (feat. gh-pages)

Prerequisites github account install git (later than Window 2.16) install node.js(later than Node 8.10.0) install npm 1. React project 생성 npx create-react-app mypage mypage라는 이름의 react app 생성 2. gh-pages 패키지 다운로드 cd mypage npm install gh-pages --save-dev 현재 폴더 위치를 mypage로 옮긴 후 gh-pages package 설치 (as a "dev-dependency" of the app) 3. package.json file 에 properties 추가 homepage property 추가 "homepa..

2020.09.19

[프로그래머스] 세 소수의 합

로직 소수를 구하기 위해 에라토스테네스의 체를 사용하였다. 우리는 n = 1st 소수 + 2nd 소수 + 3rd 소수 를 구하는 것이기 때문에, n은 최소 10이상이어야한다. max_num은 구해야할 소수 중 가장 큰 값을 뜻하는데 이를 n-5로 설정해준 이유는, 1st 소수 + 2nd 소수 의 최솟값이 5이기 때문이다. 에라토스테네스의 체를 이용해서 소수를 구한다. O(n^2) nums 리스트를 모두 True로 설정 (nums의 사이즈는 max_num +1 : 인덱스와 소수를 일치시키기 위함) 2부터 끝까지 순회하며 True인 경우에는 소수로 간주하고 소수의 배수가 되는 숫자들은 모두 False로 바꾼다. 서로다른 세 소수들의 합이 n이 되는 경우의 수를 모두 구한다 O(n^2) nested loop을..

코테 준비 2020.09.18

[프로그래머스] 빙고

로직 딕셔너리를 사용해서 { num : board상의 idx } 정보들을 다 저장 N 사이즈의 rows, cols 리스트를 만들어서 각 행과 열에 몇 개의 num이 등장했는지 카운트 대각선은 (1) 현재 위치한 행 == 열 인 경우 카운트 --- [왼쪽 위에서 오른쪽 아래로 향하는 대각선] (2) 현재 위치한 행 + 열 + 1 == N 인 경우 카운트 --- [반대 대각선] rows와 cols는 순회하면서 카운트가 N일시 빙고 +1, diag_RL와 diag_LR은 값이 N일시에 빙고 +1 코드 def solution(board, nums): answer = 0 N = len(board) num_location = {} rows, cols, diag_LR, diag_RL = [0]*N, [0]*N, 0,..

코테 준비 2020.09.12

[카카오 2020 코테 #1] 문자열 압축 - python

처음에 입출력 예 #5 를 보지 못해서 '문자열이 제일 앞부터 정해진 길이만큼 잘라야'한다는 점을 몰랐다 그래서 더 어렵게 생각하다보니 문제 난이도에 비해서 생각을 매우 오래했던 문제다 항상...! 문제를 잘 읽어보고 문제에 임하도록하쟈! 로직 살짝 brute force(전체 탐색)느낌이다 chunking 단위를 len(s)//2 부터 1까지로 잡고 [ 반복 ] chunking 단위 > 0 일 동안 [ 반복 ] 문자열을 chunking 단위만큼 잘라준다 앞의 문자열과 같으면 카운트해주고 같지 않으면 카운트를 멈추고 압축가능한 경우 압축한다. chunking 길이를 -1 코드 1차 코드 def solution(s): answer = len(s) total_len = len(s) string_len = le..

코테 준비 2020.09.10

[프로그래머스 - heap] 더 맵게

programmers.co.kr/learn/courses/30/lessons/42626 로직 한 turn에 데이터를 pop한 후 새로운 데이터로 push하는 과정이 모두 들어가있고, 리스트는 항상 정렬상태여야한다. 이 상황에서 가장 적절한 데이터 구조는 heap이라고 생각하여 heapq 내장 모듈을 사용하였다. 1. heapify 하여 scoville 리스트를 heap 형식으로 만들어준다. 2. scoville의 길이가 0이 아니라면 아래의 과정을 반복한다. [pop] x = heappop() if x > K라면 [pop] y도 pop한 다음 [new_scoville = x + y*2] 연산을 해준다. [push] new_scoville를 heap에 넣어준다. else 모든 데이터가 K보다 크거나 같으므..

코테 준비 2020.09.07

[프로그래머스 - BFS] FloodFill

초기 변수 설정 check[][] : n*m 사이즈의 boolean 타입 2D Array BFS과정에서 grouping 완료된 좌표 => True queue : 현재 바라볼 좌표(x,y)를 pop, 바라보는 좌표의 이웃들 (x-1, y) (x+1, y) (x, y-1) (x, y+1)을 append 로직 이중 for 문으로 n*m 사이즈의 좌표를 차례로 탐색 if check하지 않은 좌표 해당 좌표를 bfs 탐색하며 grouping 한 후 count +=1 해준다. (BFS 탐색 한 번 == grouping 한 번) return count BFS 탐색 queue.append(탐색 시작 좌표) while queue is not empty: queue.popleft() # 현재 바라봐야할 좌표 pop if ..

코테 준비 2020.09.05

[프로그래머스/python] 기능 개발

https://programmers.co.kr/learn/courses/30/lessons/42586 로직 progress가 100% 이상이 되기 까지 필요한 일수(days)를 계산 lst에 모든 days를 넣어주었다. 계산된 days를 iterate하면서 다음과 같은 조건문으로 답을 구했다. if prev가 초기화 값(0)이면 prev에 값을 넣어준다. elif prev = 현재 days 값이면 count해준다. (앞에 있는 기능이 배포될 때 함께 배포 가능) for문 밖을 빠져나올 때, counter 값이 0이 아니라면 마지막 배포가 아직 안끝난 상황이므로 ..

코테 준비 2020.09.04