[AlgoSpot] 알고스팟 > TILING2🖼 > Python 문제풀이!
해답) tile = [-1 for _ in range(101)] def TILING2(n): if tile[n] != -1: return tile[n] if n < 0: return False if n == 1: return 1 if n == 2: return 2 tile[n] = TILING2(n-1) + TILING2(n-2) return TILING2(n-1) + TILING2(n-2) testcaseNum = int(input()) for _ in range(testcaseNum): answer = TILING2(int(input())) % 1000000007 print(answer) 풀이) 길이가 1일때 만들 수 있는 타일의 개수 : 1개 길이가 2일때 만들 수 있는 타일의 개수 : 2개 길이가..
2020. 2. 22.
[AlgoSpot] 알고스팟 > WILDCARD(와일드카드) - Python 문제풀이 👀
해답) import sys def readline(): return sys.stdin.readline() def solution(w_str, i_strs): answer = [] for i_str in i_strs: if isMatched(w_str, i_str): answer.append(i_str) for answerStr in sorted(answer): print(answerStr) return 0 def isMatched(w_str, i_str): if len(i_str) == 0 and len(w_str) == 0: return True if len(w_str) == 0: return False if w_str[0] == '*': if len(i_str) == 0: return isMatche..
2020. 2. 17.
[프로그래머스💯][JS] 코딩테스트 연습 > 탐욕법(Greedy) > 섬 연결하기
해답) const makeDisjointSet = (islandList, n) => { for (let i = 0; i { if (island.pi === island.me) return island else { return findSet(islandList, islandList[island.pi]) } } const link = (island1, island2) => { if (island1.rank > island2.rank) island2.pi = island1.me else island1.pi = island2.me if ..
2020. 2. 9.
[Git] git pull이 안먹힐 때 ② /fatal: refusing to merge unrelated histories 🚫 해결법!
에러 원격 저장소에서 코드를 가져올 때 , 이런식으로 history가 달라서 merge가 불가능하다고 뜰 수 있다. history 에 공통점이없으니 (pull 의 실수일 가능성을 예상) 너네 merge 하는 건 위험해! 하고 막아주는 것이다. 해결법 $ git pull origin master --allow-unrelated-histories -allow-unrelated-hisories 라는 옵션을 줌으로 해결이 가능하다. hisotry가 다른 merge도 허용하겠다는 뜻이다. (혹은 git fetch all 후 merge 에서 저 옵션을 주어도 된다.)
2020. 2. 6.
[Git] git pull이 안먹힐 때 ① / git pull Already up to date. 🚫 해결법!
에러 원격 저장소에서 코드를 가져올 때 , 분명 내 코드는 원격 저장소와 다른데 이렇게 Already up to date라고 뜨며 워킹 디렉토리 (코드들)은 안가져오는 경우가 있다. 해결법 $ git fetch --all $ git reset --hard origin/master 원격저장소를 전부 fetch 한 후, 해당 브랜치로 --hard 옵션을 주어 reset시킨다. master 를 -> origin/master 로 강제 리셋 시키는 방법입니다. ( * 단, 현재 로컬에만 있는 코드들은 날아갈 수 있으니 주의!) 참고 : https://stackoverflow.com/questions/25411366/git-repo-says-its-up-to-date-after-pull-but-files-are-n..
2020. 2. 4.
[프로그래머스💯] 코딩테스트 연습 > 힙(Heap) > 디스크 컨트롤러
해답) const solution = jobs => { let jobsLen = jobs.length let totalTime = 0 let nowTime = 0 jobs = jobs.sort((arr1, arr2) => { return arr1[0] - arr2[0] }) // jobs 를 시작시간 기준으로 sort 해준다. while (jobs.length != 0) { const { startTime, spendTime, remainArr } = getSecondIndexMin(jobs, nowTime) nowTime = Math.max(nowTime + spendTime, startTime + spendTime) totalTime += nowTime - startTime jobs = remainA..
2020. 2. 2.
[NodeJS] path.join 과 path.resolve 차이 📋 / path.join이란? / path.resolve란?
Path.join path.join([...paths]) * ...paths 인자들은 항상 string이어야 합니다. 경로들을 string 으로 받아 합쳐줍니다. 예시) path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // Returns: '/foo/bar/baz/asdf' path.join('foo', {}, 'bar'); // Throws 'TypeError: Path must be a string. Received {}' (Node.js 홈페이지 제공) 첫번째 예시의 경우, 하나하나 stirng들을 경로라고 생각해서 /로 구분지어 새로운 경로를 만들어냅니다. quux가 포함되지 않는 이유는 '..' 가 상위 폴더 를 가리키기 때문❗ Path.resolve..
2020. 1. 30.
[Git] .gitignore이란? / .gitignore 사용법 💖
.gitignore 이란? 하나씩 git repository 에 넣는 것은 매우 귀찮다. 그래서 보통 우리는 git add . 를 이용해 변경된 전체 파일을 추가하고 커밋한다. 여기서 보안상으로 위험성이 있는 파일 프로젝트와 관계없는 파일 용량이 너무 커서 제외해야되는 파일 등등이 생겨 git add 에 포함시키기 싫은 경우가 있다. 물론 이 경우 git rm 를 통해 일부 파일만 제외시키면 되지만, 모든 커밋에 그런 행동을 하는 것은 정말 힘이든다. 따라서 우리는 .gitignore 이라는 디렉토리를 만들어 무시할 파일을 넣어 줄 수 있다. 사용법 git init 을 한 폴더 에다가 .gitignore 이라는 이름으로 파일을 하나 만들어준다. 그 안에 한줄씩 제외할 파일 혹은 폴더를 쓰면 된다. 그냥 ..
2020. 1. 28.