Thief of Wealth
[Javascript] MinHeapTree 사용하기 (11279 최대힙)
개발/Javascript 2020. 11. 29. 18:56

www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이 www.acmicpc.net 문제를 풀기 위해 가장 최대값을 먼저 pop해주는 큐를 구현해야한다. 템플릿으로 사용하기 위한 최대힙을 사용한 코드는 다음과 같다. 'use strict' class MaxHeapTree { values = [] isEmpty() { return this.values.length === 0 } parentIndexOf(index) { return Math.floor((index - 1) / 2..

[Javascript] 우선순위 큐 활용하여 문제 풀기 (1927 최소힙)
개발/Javascript 2020. 11. 29. 18:28

www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이 www.acmicpc.net 우선순위 큐를 사용하는 간단한 문제인데, python에서는 heap 라이브러리가 있어서 쉽게 풀 수 있었으나, javascript에는 우선순위 큐를 직접 구현하여 해결해야한다는 것 때문에 조금 낮설었다. 앞으로 코딩테스트를 하면, 자바스크립트에서 제공하지 않는 라이브러리로 문제를 해결해야할 일이 많아질 텐데 템플릿을 복사해가며 문제를 해결해야할 것 같다는 생각을 했다. 아래는 MinHeap소스코드..

[자기계발] 될때까지 계속 시도하라
개발/자기계발 2020. 11. 29. 01:08

주사위를 던지는 건 내 의지지만, 무슨 숫자가 나올지는 누구도 알 수 없다. 내가 할 수 있는 건 원하는 숫자가 나올 때까지 계속 던지는 것이다. 물론 시도할 때마다 기회비용이 커지는게 부담스럽지만, 원하는 게 나올 때까지 계속 던져야한다. 이것을 누군가는 노력이라고 하고 이것을 꾸준히 할 수 있는 힘을 근성이라고 한다. 노력이라는 것은 특별한 것이 아니다. 될 때까지 계속 도전하는 것이고, 뭘하든 최소 6번 정도는 시도해 봐야한다. 인생에서 운은 매우 중요하다. 어쩌면 거의 전부라 해도 무방할 만큼 결과에 큰 영향을 미친다. 하지만 개인의 의지와 노력없이는 운도 반응할 수 없다. 뭐든 도전하다 보면 돈이고 시간이고 날려 먹는 것은 예삿일이다. 그래도 포기하지 말자, 수업료라 생각하고 더 나은 방식으로 ..

[자기계발] 젊다는 건 그 자체만으로 기회다.
개발/자기계발 2020. 11. 29. 01:00

똑똑한 선택에만 집착하면 도전이라는 것을 할 수 가 없다. 요즘은 내면의 욕구에 이끌려 거침없이 사는 젊음을 찾기 어렵다. 제일 빠른 길에 집착하고 가장 최적화된 방식만 고집하려 한다. 남이 써 놓은 리뷰를 읽지 않으면 자기 안목으로 물건하나 고르지 못하고, 실수나 실패가 두렵다. 뭔가 새로운 걸 해보자고 하면 귀찮다 하고, 크게 베팅하라면 두렵다고 한다. 손해 보는 것을 끔찍이 싫어한다. 남과 비슷하게 하는 걸 안전한 길이라 믿는다. 결국, 자기 의지로 제대로 시도해 보는 게 하나도 없다. 수많은 젊은이들이 이 도그마에서 벗어나질 못한다. 인간은 기업이 아니기 때문에 모든 일에 수지타산을 따져가며 결정해야 할만큼, 젊은이의 삶에 이해타산은 중요치 않다. 오히려 과감한 시도와 경험을 통해 적응력을 키워야..

[Javascript] 자바스크립트의 "use strict"는 도대체 무엇일까?
개발/Javascript 2020. 11. 29. 00:39

"use strict" 도대체 무엇일까? 어느 코드에서는 있고, 어느 코드에서는 없고 항상 맨위에, 또는 함수 내에 선언되어 있는 이 문구는 도대체 무엇인가를 고민하고 잠시 미룬뒤 꽤 시간이 지나서 이제야 정답을 찾고 포스팅한다. 결론은, "use strict"는 해당 파일 전체나, 함수내의 맨 윗줄에 선언함으로써 자바스크립트 코드를 좀 더 엄격하게 심사를 하고 실행시킬 수 있게 해주는 기능을 한다. 즉, 흔히 발생하는 코딩 문법오류나 명확하게 짜이지 않은 코드, 취약점이 있는 코드들에 대해 예외를 발생시키는 기능을 한다! 되도록이면 써주는 습관을 들여야겠다.

[Javascript] 자바스크립트 map() vs foreach() 비교하기
개발/Javascript 2020. 11. 28. 22:48

arr.map(), arr.foreach() 자바스크립트에서는 arr의 각 요소에 어떠한 처리를 하고 싶을 때, 보통 for문을 쓰거나 map, foreach를 사용한다. 하지만 모든 함수에는 이유가 있는법. 각 함수의 특징을 알아보자. 공통점으로는 map과 foreach 내부에는 콜백함수를 선언할 수 있다. 함수의 인자로는 대상 어레이의 각 원소에 해당하는 elem, 해당 elem의 index, 그리고 대상 어레이인 array를 인자로 받을 수 있다. 차이점으로는 map은 콜백함수의 반환값을 원소로하는 어레이를 새로 생성하여 반환하고 대상이 된 객체는 아무 영향도 끼치지 않는다. 반면에 foreach는 콜백함수의 반환값을 원소로 하는 어레이를 기존 배열에 바로 적용시키고, 최종적으로 반환값이 존재하지 ..

[BOJ] 17413 단어 뒤집기 2 (js)
개발/알고리즘 2020. 11. 28. 20:12

문제 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다. 문자열의 시작과 끝은 공백이 아니다. ''가 문자열에 있는 경우 번갈아가면서 등장하며, '

article thumbnail
[BOJ] 누울 자리를 찾아라 (js)
개발/알고리즘 2020. 11. 28. 12:20

문제 일 년 동안 세계일주를 하던 영식이는 여행을 하다 너무 피곤해서 근처에 있는 코레스코 콘도에서 하룻밤 잠을 자기로 하고 방을 잡았다. 코레스코 콘도에 있는 방은 NxN의 정사각형모양으로 생겼다. 방 안에는 옮길 수 없는 짐들이 이것저것 많이 있어서 영식이의 누울 자리를 차지하고 있었다. 영식이는 이 열악한 환경에서 누울 수 있는 자리를 찾아야 한다. 영식이가 누울 수 있는 자리에는 조건이 있다. 똑바로 연속해서 2칸 이상의 빈 칸이 존재하면 그 곳에 몸을 양 옆으로 쭉 뻗으면서 누울 수 있다. 가로로 누울 수도 있고 세로로 누울 수도 있다. 누울 때는 무조건 몸을 쭉 뻗기 때문에 반드시 벽이나 짐에 닿게 된다. (중간에 어정쩡하게 눕는 경우가 없다.) 만약 방의 구조가 위의 그림처럼 생겼다면, 가로..

profile on loading

Loading...