목록분류 전체보기 (116)
기술 블로그
코테중 제곱수를 확인하는 문제가 있어 아래와 같이 구현했다. parseInt(parseInt(n).toString(2).split('').reverse().join(''))===1 2의 제곱수 특성을 활용해 2진수 문자열로 변환 후 리버스 후 1과 같은지 확인했다. 다른 아래와 같은 방법도 있다. 1.비트연산 위의 이진수를 활용한 개념와 유사하지만 더 명료하게 비트연산을 활용한다. function isSquare(n) { return n > 0 && (n & (n - 1)) === 0; } 만약 n이 8이라면 8 & 7의 and연산을 수행한다. 즉 1000과 0111의 and == 0000이므로 2의 제곱수가 맞다 만약 9일경우 1001 and 1000 = 1000 != 0이므로 2의 제곱수가 아니다. ..
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let input = [] rl.on("line", function(line) { if(!line) { rl.close() } else { input.push(line) } }).on("close", function() { sol(input); process.exit(); }); function sol(input){ console.log(input+"hello") } https://forgottenknowledge.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB..
class Heap { constructor() { this.heap = [null]; //0인덱스비워두기 } size() { return this.heap.length; } swap(i, j) { [this.heap[i], this.heap[j]] = [this.heap[j], this.heap[i]]; } heappush(value) { this.heap.push(value); let curIdx = this.heap.length - 1; // 현 노드 (위 value가 들어간 값) let parIdx = (curIdx / 2) >> 0; // 부모노드 while (curIdx > 1 && this.heap[curIdx] < this.heap[parIdx]) { //현 노드가 루트노드가 아니며, 동시..
str.indexOf(찾을 값, 시작위치) 없을경우 -1을 반환한다. str.search(정규식) str.substring(시작,끝) slice와 유사하나 음수를 사용할수없다. str.substr(시작,길이) str.replace(문자열,문자열) 발견된 첫 문자열을 바꾸어 반환한다. str.replaceAll(문자열,문자열) 모든문자열을 바꾸어 반환한다. concat(문자열,문자열) 문자열을 결합한다. 문자열.trim() 공백을 제거한다.
let a = [3, 1, 6, 2, 4, 8, 10, 5, 11, 7, 9]; a.sort(compareNumber); console.log(a); function compareNumber(i, j) { return i - j; } Math 반올림,올림,내림 Math.round(실수) Math.ceil(실수) Math.floor(실수) 거듭제곱, 제곱근 Math.pow(2,3) = 2**3 console.log(Math.sqrt(9)); console.log(Math.pow(3, 5)); console.log(Math.sqrt(9)); //243 //3 최대 최소 console.log(Math.max(1, 2, 3, 4)); console.log(Math.min(1, 2, 3, 4)); //4 //1 ..
from collections import deque def solution(priorities, location): #배열을 만들어야함 arr=[ i for i in range(len(priorities))] print(arr) at = priorities[location] answer = 0 q = deque(arr) while True: n = q.popleft() # 인덱스 dn = priorities[n] #실값 if dn
1. 디자인패턴 라이브러리/프레임워크: 공통으로 사용될 수 있는 특정 기능을 모듈화한 것 디자인 패턴: 프로그램설계시 문제발생을 예방하고 객체 간 상호 관계를 이용해 해결할 수 있도록 한 규약 싱글톤 패턴 하나의 클래스에 하나의 인스턴스만 가지는 패턴 특징 데이터베이스 연결 모듈에 자주 사용 인스턴스를 공유하여 인스턴스 생성 비용 감소 단점 의존성이 높아짐 의존성:소프트웨어 개발에서 한 요소나 모듈이 다른 요소나 모듈에 어떻게 의존하고 있는지를 나타내는 개념 다른 클래스나 모듈에서 해당 싱글톤 인스턴스에 접근할 수 있고 이로인해 코드가 더 긴밀히 결합되어 하나의 클래스나 모듈이 변경되면 다른 클래스나 모듈도 영향을 받을 수 있음 이는 유지보수와 확장성 측면에서 문제을 일으킬 수 있음 → 그러나 의존성 주..
코딩테스트 문제 복기 문제 조건 배열로 아이템이 제공된다. 각 아이템은 name, score 쌍의 데이터를 가진다. score을 기준으로 들어온 아이템을 정렬해야한다. score, 들어온 순으로 우선순위를 가진다. 만약 같은 name으로 기존보다 더 높은 score가 들어온다면 업데이트한다. score순으로 정렬되었을때 특정 갯수(이하 K) 안에서 순위에 변동(순위에 영향을 끼치지 못하는 정도의 score변동은 미해당)이 있을 때 count를 +1 한다. 알맞은 count를 반환하시오 분석 위 문제에 대해 주요 포인트는 2가지 이다. 중복된 name값을 가진 아이템은 업데이트 할것 score값에 따라 정렬할 것 이전 값과 비교하여 변화를 count 할것 3번의 경우에는 최신 업데이트한 rank값과 직전..
100~ 정보 응답 100 클라이언트가 서버에 요청의 초기 부분을 보내도 되는지 확인하고 서버가 준비 되었으면 나머지를 보내도록 요청 즉 상태가 괜찮음을 알리는 임시적 응답 200~ 성공 응답 200 성공 201 요청이 성공적으로 처리되었으며 새로운 리소스 생성 post,put 204 요청이 성공적이었으나 컨텐츠를 제공하지 않음 헤더는 있을 수 있음 300~ 리다이랙션 응답 301 요청한 리소스 url이 영구적으로 변경됨 302 요청한 리소스가 일시적으로 다른 url로 이동 304 클라이언트에게 응답이 수정되지 않았음을 알림 (캐시 유용) 400~ 클라이언트 에러 400 서버가 요청을 이해할 수 없음 401 인증 페이지 혹은 인증 리소스 요청 - 인증필요 403 클라이언트가 콘텐츠에 접근할 권리가 없음 ..
from collections import deque def solution(progresses, speeds): #순서, 속도 #후순위까지 병목 생길시 함께 배포 #뒤 기능은 앞 기능이 배포될때 배포 proQ = deque(progresses) speedQ = deque(speeds) answer = [] d = 0 while True: while proQ: if proQ[0] = 100: speedQ.popleft() proQ.popleft() d += 1 if d>0: print(proQ) answer.append(d) d = 0 for i in range(len(proQ)): proQ[i] += speedQ[i] if len(proQ) == 0: bre..