Skip to content

Instantly share code, notes, and snippets.

View Jeewhan's full-sized avatar
🎯
Focusing

Jeewhan Jeewhan

🎯
Focusing
  • Seoul
View GitHub Profile
**[상황 지정 및 목표 설정]**
현 LLM과의 대화 세션이 활성 컨텍스트 창(토큰 제한)의 한계에 임박했거나 이미 도달했습니다. 이로 인해 더 이상 유의미한 상호작용이나 추가 정보 처리가 불가능한 상태입니다. 따라서, 현재까지 진행된 **모든** 대화 내용을 **단 하나의 누락도 없이**, 극도로 상세하고 포괄적인 형태로 요약하여, 완전히 새로운 LLM 대화 세션에서 이 요약본을 제공함으로써 대화의 연속성을 완벽하게 보장하고 중단된 지점부터 즉시 심층적인 논의를 재개하는 것을 목표로 합니다.
이 작업은 단순한 요약이 아니라, 마치 **고도로 전문화된 분야의 전문가가 다른 최고 전문가에게 모든 관련 기록과 미묘한 맥락까지 포함하여 사례를 인수인계하는 상세한 의뢰서(Referral Letter) 또는 사건 기록(Case File)을 작성하는 것**과 같습니다. 따라서, 생성될 요약문은 그 자체로 **독립적인 정보 가치**를 지녀야 하며, 새로운 LLM 인스턴스가 이 요약문만으로 이전 대화의 **모든 흐름, 논점, 제공된 정보, 탐색된 아이디어, 도달한 결론 (잠정적인 것이라도), 그리고 가장 중요하게는 대화가 중단된 정확한 지점과 다음 논의 과제**를 100% 이해할 수 있도록 작성되어야 합니다. 답변의 길이는 **길면 길수록 좋습니다.** 사소해 보이는 세부 사항도 생략하지 마십시오.
**[요약문에 반드시 포함되어야 할 상세 항목 (의뢰서/사건 기록 형식)]**
**I. 대화의 근본적인 목표 및 초기 설정 (Initial Case Objective & Setup):**
1. **최초 발제 또는 문제 정의:** 이 대화가 시작된 근본적인 이유, 사용자가 처음 제기했던 질문, 문제, 또는 달성하고자 했던 구체적인 목표는 무엇이었습니까? 가능한 한 원문에 가깝게, 혹은 그 의도를 정확히 반영하여 기술하십시오.
2. **초기 가정 및 제약 조건:** 대화 초기에 설정되었거나 암묵적으로 동의된 가정, 사용자가 명시한 제약 조건, 또는 논의의 범위를 설정하는 데 사용된 기준이 있다면 상세히 명시하십시오.
3.
# @param {Integer[]} nums
# @return {Integer}
def single_number(nums)
nums.reduce({}) do |acc, n|
acc[n].nil? \
? acc.tap { |acc| acc[n] = n }
: acc.tap { |acc| acc.delete(n) }
end.shift[0]
end
@Jeewhan
Jeewhan / ruby_end_keyword.md
Created May 30, 2018 16:47 — forked from jules27/ruby_end_keyword.md
Using the "end" keyword in Ruby

Introduction

After working through exercises for learning Ruby as part of preparation for the upcoming Dev Bootcamp, we had a friendly discussion about the exercise to implement a Reverse Polish notation calculator. At the end of discussion, one of the staff members, Jesse, posted his solution to students.

The solution is well-designed, clean, and easy to read. However, one line of code caught my eye:

tokenize(array).inject([]) do |stack, token|
      <...>
end.pop
# @param {TreeNode} t1
# @param {TreeNode} t2
# @return {TreeNode}
# Definition for a binary tree node.
class TreeNode
attr_accessor :val, :left, :right
def initialize(val)
@val = val
@left, @right = nil, nil
# @param {Integer} x
# @param {Integer} y
# @return {Integer}
def convert(n, base)
t = '0123456789ABCDEF'
q, r = n.divmod(base)
q == 0 ? t[r] : convert(q, base) + t[r]
end
@Jeewhan
Jeewhan / combinators.js
Created May 2, 2018 15:07 — forked from Avaq/combinators.js
Common combinators in JavaScript
const I = x => x;
const K = x => y => x;
const A = f => x => f(x);
const T = x => f => f(x);
const W = f => x => f(x)(x);
const C = f => y => x => f(x)(y);
const B = f => g => x => f(g(x));
const S = f => g => x => f(x)(g(x));
const P = f => g => x => y => f(g(x))(g(y));
const Y = f => (g => g(g))(g => f(x => g(g)(x)));
// https://app.codility.com/programmers/lessons/7-stacks_and_queues/nesting/
function solution(S) {
let stack = 0;
for (const v of S) {
if (v === "(") stack += 1;
else {
if (!stack) return 0;
stack -= 1;
// https://app.codility.com/programmers/lessons/7-stacks_and_queues/fish/
const solution = (A, B) =>
A.reduce(([up, down], v, i) => {
if (B[i]) down.push(v);
else {
while (down[down.length-1] < v) down.pop();
if (!down.length) up.push(v);
}
return [up, down];
// https://app.codility.com/programmers/lessons/7-stacks_and_queues/brackets/
function solution(S) {
const check = { ")": "(", "}": "{", "]": "[" };
const stack = [];
for (const s of S) {
if (s === "(" || s === "{" || s === "[") stack.push(s);
else if (s === ")" || s === "}" || s === "]") {
if (check[s] !== stack[stack.length-1]) return 0;
// https://app.codility.com/programmers/lessons/7-stacks_and_queues/stone_wall/
function solution(H) {
const stack = [];
return H.reduce((count, v) => {
const last = stack[stack.length-1];
if (!stack.length || last < v) stack.push(v);
else if (last > v) {