Skip to content

Instantly share code, notes, and snippets.

View refracta's full-sized avatar
🕶️

refracta

🕶️
View GitHub Profile
@refracta
refracta / LeetCodeTimeout.py
Created April 7, 2022 07:02
LeetCodeTimeout.py
class Solution:
def findMedianSortedArrays(self, nums1, nums2):
len1 = len(nums1)
len2 = len(nums2)
totalLen = len1 + len2
# 연산에 쓰이는 길이 상수 초기화
nums1Cursor = nums2Cursor = totalCursor = 0
# 커서 변수 초기화
total = [None for i in range(totalLen)]
# nums1 + nums2 길이의 빈 배열 생성
@refracta
refracta / opl.js
Last active May 14, 2022 10:35
Object Proxy of localStorage
let ls = new Proxy(localStorage, {
get: (o1, p1) => o1[p1] ? new Proxy(JSON.parse(o1[p1]), {
get: (o2, p2) => typeof o2[p2] === 'function' ? function () { let r = o2[p2].apply(o2, arguments); ls[p1] = o2; return r; } : o2[p2],
set: (o2, p2, v2) => { o2[p2] = v2; ls[p1] = o2 }
}) : null,
set: (o, p, v) => o[p] = JSON.stringify(v)
});
/*
let ls = new Proxy(localStorage,
@refracta
refracta / NotionAPIGuide.md
Last active January 13, 2022 00:38
NotionAPIGuide
@refracta
refracta / Video2MP3.js
Created December 14, 2021 00:13
Video2MP3.js
const fs = require('fs');
const util = require('util');
const exec = util.promisify(require('child_process').exec);
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function cmd(s) {
const { stdout, stderr } = await exec(s);
@refracta
refracta / FiveLineQueue.h
Last active December 8, 2021 07:21
FiveLineQueue.h
#define MACRO_QUEUE(TYPE, NAME, SIZE) TYPE NAME[SIZE]; int NAME ## _HEAD = 0, NAME ## _TAIL = 0; int NAME ## _CAPACITY = CAPACITY; int NAME ## _SIZE = 0
#define IS_EMPTY(NAME) (NAME ## _SIZE == 0)
#define IS_FULL(NAME) (NAME ## _SIZE == NAME ## _CAPACITY)
#define ENQUEUE(NAME, DATA) NAME[(NAME ## _SIZE++, NAME ## _TAIL = (NAME ## _TAIL + 1) % NAME ## _CAPACITY)] = DATA
#define DEQUEUE(NAME) NAME[(NAME ## _SIZE--, NAME ## _HEAD = (NAME ## _HEAD + 1) % NAME ## _CAPACITY)]
@refracta
refracta / buils.ps1
Created November 27, 2021 17:17
Convert CLion CMake Module to Eclipse Project
function Copy-Folder {
[CmdletBinding()]
param(
[Parameter(Mandatory)]
[String]$FromPath,
[Parameter(Mandatory)]
[String]$ToPath,
[string[]] $Exclude
@refracta
refracta / CPop2JSPop.h
Last active December 8, 2021 04:58
Macro to convert C style pop to JS style pop
#define POP(Q) (int[]){Q.top(), (Q.pop(), NULL)}[0]
#define POPS(Q, D) (Q.size() > 0 ? POP(Q) : D)
@refracta
refracta / ConvertRTTTL.js
Created November 9, 2021 11:21
ConvertRTTTL.js
let target = process.argv.slice(2).join(" ");
let[name, setting, data] = target.split(":").map(e => e.trim());
data = data.toLowerCase();
setting = Object.assign(...setting.split(",").map(e => Object.fromEntries([e.trim().split('=')])));
data = data.split(',').map(e => e.trim().replace('c#', 'C').replace('d#', 'D').replace('f#', 'F').replace('g#', 'G').replace('a#', 'A').split(''));
data = data.map(e => {
let d = e.filter(e=>e==='.').length;
e = e.filter(e=>e!=='.');
if (!isNaN(e[0]) && !isNaN(e[1])) {
e = [parseInt(e[0] + e[1]), ...e.slice(2)];
@refracta
refracta / Video2MP3.js
Created November 8, 2021 20:43
Video2MP3.js
const fs = require('fs');
const util = require('util');
const exec = util.promisify(require('child_process').exec);
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function cmd(s) {
const { stdout, stderr } = await exec(s);
@refracta
refracta / build.ps1
Last active September 21, 2022 18:25
Convert IDEA Module to Eclipse Project
$compressor_raw = 'UEsDBBQACAgIAM8VNlUAAAAAAAAAAAAAAAAUAAQATUVUQS1JTkYvTUFOSUZFU1QuTUb+ygAA803My0xLLS7RDUstKs7Mz7NSMNQz4OXyTczM03XOSSwutlIILkksKkkt4uXi5QIAUEsHCC+Vt7IwAAAALgAAAFBLAwQKAAAIAADPFTZVAAAAAAAAAAAAAAAACQAAAE1FVEEtSU5GL1BLAwQUAAgICADGFTZVAAAAAAAAAAAAAAAADQAAAFN0YXJ0ZXIuY2xhc3NtUU1PwkAQfQuFSq2CIh9+QbwBB5sYbxgvJpwaPaAk6mkpTV0sLVm3HvhXnjCa+AP8UcbZ2oSYsIf5ePPmzWTn++fjC8A52haK2DNRs5BD3UIDTRP7Jg4YihciEuqSId/pjhiMq3jiM5RdEfnXyWzsy1s+DgnZdWOPhyMuhc4z0FBP4oWh5A4Vl8qXfYJmXEQM9c6jO+Wv3Al5FDhDJUUU9NMBXAbUUl1TZrCGcSI9fyC0uJ2JnmqiDRMbhKVNInY0RWOHJo5sHKPFYGZ8hspK+mY89T3FUOusX6cVy8BZ+DJWiYy4jJNo4izE3HkQ8zslQtp3zr1nhnbWn43u/8+6I5ygQH+sXw5ML0u2RJlDnpEv9JZgb2nZIlv8A7FJ1s5iG1vkS9hGOWseEKprzU/k7nv5syXyaWTo6B3GSk8fFjS2QYNXmk1UsEOezpcyq79QSwcICewCnFABAAASAgAAUEsDBAoAAAgAAM8VNlUAAAAAAAAAAAAAAAAEAAAAb3JnL1BLAwQKAAAIAADPFTZVAAAAAAAAAAAAAAAACgAAAG9yZy9zbGY0ai9QSwMECgAACAAAzxU2VQAAAAAAAAAAAAAAABIAAABvcmcvc2xmNGovaGVscGVycy9QSwMECgAACAAAzxU2VQAAAAAAAAAAAAAAAA4AAABvcmcvc2xmNGovc3BpL1BLAwQUAAgICAB2NVBSAAAAAAAAAAAAAAAAIwAAAG9yZy9zb