양서희 / 2024.08.17 - #54

Open
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main
Open

양서희 / 2024.08.17#54
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main

Conversation

@yangseoh22

Copy link
Copy Markdown
Contributor

✅ 1806 - 부분합

  1. 수열 입력 받아 배열에 저장
  2. 반복문을 통해 배열 속 값들을 순회 (왼쪽 포인터 : i / 오른쪽 포인터 : right)
    2-1). 부분합이 S이하이고 right가 배열의 길이를 벗어나지 않았다면, 포인터가 가리킨 원소들의 합(currSum)을 저장
    2-2). currSum이 S이상이라면, i와 right의 간격을 구하고, S이상이 되다는 의미로 flag를 true로 갱신
    2-3). 부분합이 S이상인 경우들의 두 포인터의 간격들 중 최솟값을 구함
    2-4). 다음 부분합을 구하기 위해 curSum에서 i위치의 원소 값을 뺌
  3. flag가 flase라면 0을, 아니라면 구한 최솟값을 출력

✅ 2531 - 회전초밥

  1. 현재 초밥 벨트 위에 존재하는 초밥의 종류들을 배열에 저장
  2. 현재 주기의 먹은 초밥들을 저장할 eat 배열 생성
  3. 초기화를 위해 처음~k개를 먹었을 때의 초밥 가짓수 cnt를 구함 (eat의 원소가 0일 경우를 이용)
  4. 먹은 초밥의 eat 배열 원소도 함께 증가 시켜줌
  5. max라는 변수에 cnt만큼 할당해주고, 쿠폰을 쓰지 않았다면 max+1
  6. 두번째 접시 부터 k개를 먹는 경우를 모두 조사
    6-1-1). 이전 주기에서의 시작 스시의 인덱스 startIdx를 구함
    6-1-2). 현재 주기에서는 먹지 않으므로 해당 인덱스의 eat 원소를 1감소
    6-1-3). 바로 전단계에서 변화된 eat원소가 0이라면 현재 주기에서 먹지 않는 종류 이므로 cnt를 1감소
    6-2-1). 현재 주기에서의 마지막 스시의 인덱스 endIdx를 구함
    6-2-2). 해당 인덱스의 eat원소가 0이라면 현재 주기에서 처음 먹는 종류 이므로 cnt를 1증가
    6-2-3). 현재 주기에서 먹었으므로 해당 인덱스의 eat 원소를 1증가
    6-3). 현재 cnt를 curCnt 변수에 저장해두고 쿠폰을 쓰지 않았다면 1증가
    6-4). curCnt와 max를 비교해 최댓값 갱신
  7. 최댓값 출력

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yangseoh22
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

양서희 / 2024.08.17 - #54

Open
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main
Open

양서희 / 2024.08.17#54
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main

Conversation

@yangseoh22

Copy link
Copy Markdown
Contributor

✅ 1806 - 부분합

  1. 수열 입력 받아 배열에 저장
  2. 반복문을 통해 배열 속 값들을 순회 (왼쪽 포인터 : i / 오른쪽 포인터 : right)
    2-1). 부분합이 S이하이고 right가 배열의 길이를 벗어나지 않았다면, 포인터가 가리킨 원소들의 합(currSum)을 저장
    2-2). currSum이 S이상이라면, i와 right의 간격을 구하고, S이상이 되다는 의미로 flag를 true로 갱신
    2-3). 부분합이 S이상인 경우들의 두 포인터의 간격들 중 최솟값을 구함
    2-4). 다음 부분합을 구하기 위해 curSum에서 i위치의 원소 값을 뺌
  3. flag가 flase라면 0을, 아니라면 구한 최솟값을 출력

✅ 2531 - 회전초밥

  1. 현재 초밥 벨트 위에 존재하는 초밥의 종류들을 배열에 저장
  2. 현재 주기의 먹은 초밥들을 저장할 eat 배열 생성
  3. 초기화를 위해 처음~k개를 먹었을 때의 초밥 가짓수 cnt를 구함 (eat의 원소가 0일 경우를 이용)
  4. 먹은 초밥의 eat 배열 원소도 함께 증가 시켜줌
  5. max라는 변수에 cnt만큼 할당해주고, 쿠폰을 쓰지 않았다면 max+1
  6. 두번째 접시 부터 k개를 먹는 경우를 모두 조사
    6-1-1). 이전 주기에서의 시작 스시의 인덱스 startIdx를 구함
    6-1-2). 현재 주기에서는 먹지 않으므로 해당 인덱스의 eat 원소를 1감소
    6-1-3). 바로 전단계에서 변화된 eat원소가 0이라면 현재 주기에서 먹지 않는 종류 이므로 cnt를 1감소
    6-2-1). 현재 주기에서의 마지막 스시의 인덱스 endIdx를 구함
    6-2-2). 해당 인덱스의 eat원소가 0이라면 현재 주기에서 처음 먹는 종류 이므로 cnt를 1증가
    6-2-3). 현재 주기에서 먹었으므로 해당 인덱스의 eat 원소를 1증가
    6-3). 현재 cnt를 curCnt 변수에 저장해두고 쿠폰을 쓰지 않았다면 1증가
    6-4). curCnt와 max를 비교해 최댓값 갱신
  7. 최댓값 출력

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yangseoh22
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

양서희 / 2024.08.17 - #54

Open
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main
Open

양서희 / 2024.08.17#54
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main

Conversation

@yangseoh22

Copy link
Copy Markdown
Contributor

✅ 1806 - 부분합

  1. 수열 입력 받아 배열에 저장
  2. 반복문을 통해 배열 속 값들을 순회 (왼쪽 포인터 : i / 오른쪽 포인터 : right)
    2-1). 부분합이 S이하이고 right가 배열의 길이를 벗어나지 않았다면, 포인터가 가리킨 원소들의 합(currSum)을 저장
    2-2). currSum이 S이상이라면, i와 right의 간격을 구하고, S이상이 되다는 의미로 flag를 true로 갱신
    2-3). 부분합이 S이상인 경우들의 두 포인터의 간격들 중 최솟값을 구함
    2-4). 다음 부분합을 구하기 위해 curSum에서 i위치의 원소 값을 뺌
  3. flag가 flase라면 0을, 아니라면 구한 최솟값을 출력

✅ 2531 - 회전초밥

  1. 현재 초밥 벨트 위에 존재하는 초밥의 종류들을 배열에 저장
  2. 현재 주기의 먹은 초밥들을 저장할 eat 배열 생성
  3. 초기화를 위해 처음~k개를 먹었을 때의 초밥 가짓수 cnt를 구함 (eat의 원소가 0일 경우를 이용)
  4. 먹은 초밥의 eat 배열 원소도 함께 증가 시켜줌
  5. max라는 변수에 cnt만큼 할당해주고, 쿠폰을 쓰지 않았다면 max+1
  6. 두번째 접시 부터 k개를 먹는 경우를 모두 조사
    6-1-1). 이전 주기에서의 시작 스시의 인덱스 startIdx를 구함
    6-1-2). 현재 주기에서는 먹지 않으므로 해당 인덱스의 eat 원소를 1감소
    6-1-3). 바로 전단계에서 변화된 eat원소가 0이라면 현재 주기에서 먹지 않는 종류 이므로 cnt를 1감소
    6-2-1). 현재 주기에서의 마지막 스시의 인덱스 endIdx를 구함
    6-2-2). 해당 인덱스의 eat원소가 0이라면 현재 주기에서 처음 먹는 종류 이므로 cnt를 1증가
    6-2-3). 현재 주기에서 먹었으므로 해당 인덱스의 eat 원소를 1증가
    6-3). 현재 cnt를 curCnt 변수에 저장해두고 쿠폰을 쓰지 않았다면 1증가
    6-4). curCnt와 max를 비교해 최댓값 갱신
  7. 최댓값 출력

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yangseoh22
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

양서희 / 2024.08.17 - #54

Open
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main
Open

양서희 / 2024.08.17#54
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main

Conversation

@yangseoh22

Copy link
Copy Markdown
Contributor

✅ 1806 - 부분합

  1. 수열 입력 받아 배열에 저장
  2. 반복문을 통해 배열 속 값들을 순회 (왼쪽 포인터 : i / 오른쪽 포인터 : right)
    2-1). 부분합이 S이하이고 right가 배열의 길이를 벗어나지 않았다면, 포인터가 가리킨 원소들의 합(currSum)을 저장
    2-2). currSum이 S이상이라면, i와 right의 간격을 구하고, S이상이 되다는 의미로 flag를 true로 갱신
    2-3). 부분합이 S이상인 경우들의 두 포인터의 간격들 중 최솟값을 구함
    2-4). 다음 부분합을 구하기 위해 curSum에서 i위치의 원소 값을 뺌
  3. flag가 flase라면 0을, 아니라면 구한 최솟값을 출력

✅ 2531 - 회전초밥

  1. 현재 초밥 벨트 위에 존재하는 초밥의 종류들을 배열에 저장
  2. 현재 주기의 먹은 초밥들을 저장할 eat 배열 생성
  3. 초기화를 위해 처음~k개를 먹었을 때의 초밥 가짓수 cnt를 구함 (eat의 원소가 0일 경우를 이용)
  4. 먹은 초밥의 eat 배열 원소도 함께 증가 시켜줌
  5. max라는 변수에 cnt만큼 할당해주고, 쿠폰을 쓰지 않았다면 max+1
  6. 두번째 접시 부터 k개를 먹는 경우를 모두 조사
    6-1-1). 이전 주기에서의 시작 스시의 인덱스 startIdx를 구함
    6-1-2). 현재 주기에서는 먹지 않으므로 해당 인덱스의 eat 원소를 1감소
    6-1-3). 바로 전단계에서 변화된 eat원소가 0이라면 현재 주기에서 먹지 않는 종류 이므로 cnt를 1감소
    6-2-1). 현재 주기에서의 마지막 스시의 인덱스 endIdx를 구함
    6-2-2). 해당 인덱스의 eat원소가 0이라면 현재 주기에서 처음 먹는 종류 이므로 cnt를 1증가
    6-2-3). 현재 주기에서 먹었으므로 해당 인덱스의 eat 원소를 1증가
    6-3). 현재 cnt를 curCnt 변수에 저장해두고 쿠폰을 쓰지 않았다면 1증가
    6-4). curCnt와 max를 비교해 최댓값 갱신
  7. 최댓값 출력

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yangseoh22
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

양서희 / 2024.08.17 - #54

Open
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main
Open

양서희 / 2024.08.17#54
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main

Conversation

@yangseoh22

Copy link
Copy Markdown
Contributor

✅ 1806 - 부분합

  1. 수열 입력 받아 배열에 저장
  2. 반복문을 통해 배열 속 값들을 순회 (왼쪽 포인터 : i / 오른쪽 포인터 : right)
    2-1). 부분합이 S이하이고 right가 배열의 길이를 벗어나지 않았다면, 포인터가 가리킨 원소들의 합(currSum)을 저장
    2-2). currSum이 S이상이라면, i와 right의 간격을 구하고, S이상이 되다는 의미로 flag를 true로 갱신
    2-3). 부분합이 S이상인 경우들의 두 포인터의 간격들 중 최솟값을 구함
    2-4). 다음 부분합을 구하기 위해 curSum에서 i위치의 원소 값을 뺌
  3. flag가 flase라면 0을, 아니라면 구한 최솟값을 출력

✅ 2531 - 회전초밥

  1. 현재 초밥 벨트 위에 존재하는 초밥의 종류들을 배열에 저장
  2. 현재 주기의 먹은 초밥들을 저장할 eat 배열 생성
  3. 초기화를 위해 처음~k개를 먹었을 때의 초밥 가짓수 cnt를 구함 (eat의 원소가 0일 경우를 이용)
  4. 먹은 초밥의 eat 배열 원소도 함께 증가 시켜줌
  5. max라는 변수에 cnt만큼 할당해주고, 쿠폰을 쓰지 않았다면 max+1
  6. 두번째 접시 부터 k개를 먹는 경우를 모두 조사
    6-1-1). 이전 주기에서의 시작 스시의 인덱스 startIdx를 구함
    6-1-2). 현재 주기에서는 먹지 않으므로 해당 인덱스의 eat 원소를 1감소
    6-1-3). 바로 전단계에서 변화된 eat원소가 0이라면 현재 주기에서 먹지 않는 종류 이므로 cnt를 1감소
    6-2-1). 현재 주기에서의 마지막 스시의 인덱스 endIdx를 구함
    6-2-2). 해당 인덱스의 eat원소가 0이라면 현재 주기에서 처음 먹는 종류 이므로 cnt를 1증가
    6-2-3). 현재 주기에서 먹었으므로 해당 인덱스의 eat 원소를 1증가
    6-3). 현재 cnt를 curCnt 변수에 저장해두고 쿠폰을 쓰지 않았다면 1증가
    6-4). curCnt와 max를 비교해 최댓값 갱신
  7. 최댓값 출력

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yangseoh22
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

양서희 / 2024.08.17 - #54

Open
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main
Open

양서희 / 2024.08.17#54
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main

Conversation

@yangseoh22

Copy link
Copy Markdown
Contributor

✅ 1806 - 부분합

  1. 수열 입력 받아 배열에 저장
  2. 반복문을 통해 배열 속 값들을 순회 (왼쪽 포인터 : i / 오른쪽 포인터 : right)
    2-1). 부분합이 S이하이고 right가 배열의 길이를 벗어나지 않았다면, 포인터가 가리킨 원소들의 합(currSum)을 저장
    2-2). currSum이 S이상이라면, i와 right의 간격을 구하고, S이상이 되다는 의미로 flag를 true로 갱신
    2-3). 부분합이 S이상인 경우들의 두 포인터의 간격들 중 최솟값을 구함
    2-4). 다음 부분합을 구하기 위해 curSum에서 i위치의 원소 값을 뺌
  3. flag가 flase라면 0을, 아니라면 구한 최솟값을 출력

✅ 2531 - 회전초밥

  1. 현재 초밥 벨트 위에 존재하는 초밥의 종류들을 배열에 저장
  2. 현재 주기의 먹은 초밥들을 저장할 eat 배열 생성
  3. 초기화를 위해 처음~k개를 먹었을 때의 초밥 가짓수 cnt를 구함 (eat의 원소가 0일 경우를 이용)
  4. 먹은 초밥의 eat 배열 원소도 함께 증가 시켜줌
  5. max라는 변수에 cnt만큼 할당해주고, 쿠폰을 쓰지 않았다면 max+1
  6. 두번째 접시 부터 k개를 먹는 경우를 모두 조사
    6-1-1). 이전 주기에서의 시작 스시의 인덱스 startIdx를 구함
    6-1-2). 현재 주기에서는 먹지 않으므로 해당 인덱스의 eat 원소를 1감소
    6-1-3). 바로 전단계에서 변화된 eat원소가 0이라면 현재 주기에서 먹지 않는 종류 이므로 cnt를 1감소
    6-2-1). 현재 주기에서의 마지막 스시의 인덱스 endIdx를 구함
    6-2-2). 해당 인덱스의 eat원소가 0이라면 현재 주기에서 처음 먹는 종류 이므로 cnt를 1증가
    6-2-3). 현재 주기에서 먹었으므로 해당 인덱스의 eat 원소를 1증가
    6-3). 현재 cnt를 curCnt 변수에 저장해두고 쿠폰을 쓰지 않았다면 1증가
    6-4). curCnt와 max를 비교해 최댓값 갱신
  7. 최댓값 출력

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yangseoh22
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

양서희 / 2024.08.17 - #54

Open
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main
Open

양서희 / 2024.08.17#54
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main

Conversation

@yangseoh22

Copy link
Copy Markdown
Contributor

✅ 1806 - 부분합

  1. 수열 입력 받아 배열에 저장
  2. 반복문을 통해 배열 속 값들을 순회 (왼쪽 포인터 : i / 오른쪽 포인터 : right)
    2-1). 부분합이 S이하이고 right가 배열의 길이를 벗어나지 않았다면, 포인터가 가리킨 원소들의 합(currSum)을 저장
    2-2). currSum이 S이상이라면, i와 right의 간격을 구하고, S이상이 되다는 의미로 flag를 true로 갱신
    2-3). 부분합이 S이상인 경우들의 두 포인터의 간격들 중 최솟값을 구함
    2-4). 다음 부분합을 구하기 위해 curSum에서 i위치의 원소 값을 뺌
  3. flag가 flase라면 0을, 아니라면 구한 최솟값을 출력

✅ 2531 - 회전초밥

  1. 현재 초밥 벨트 위에 존재하는 초밥의 종류들을 배열에 저장
  2. 현재 주기의 먹은 초밥들을 저장할 eat 배열 생성
  3. 초기화를 위해 처음~k개를 먹었을 때의 초밥 가짓수 cnt를 구함 (eat의 원소가 0일 경우를 이용)
  4. 먹은 초밥의 eat 배열 원소도 함께 증가 시켜줌
  5. max라는 변수에 cnt만큼 할당해주고, 쿠폰을 쓰지 않았다면 max+1
  6. 두번째 접시 부터 k개를 먹는 경우를 모두 조사
    6-1-1). 이전 주기에서의 시작 스시의 인덱스 startIdx를 구함
    6-1-2). 현재 주기에서는 먹지 않으므로 해당 인덱스의 eat 원소를 1감소
    6-1-3). 바로 전단계에서 변화된 eat원소가 0이라면 현재 주기에서 먹지 않는 종류 이므로 cnt를 1감소
    6-2-1). 현재 주기에서의 마지막 스시의 인덱스 endIdx를 구함
    6-2-2). 해당 인덱스의 eat원소가 0이라면 현재 주기에서 처음 먹는 종류 이므로 cnt를 1증가
    6-2-3). 현재 주기에서 먹었으므로 해당 인덱스의 eat 원소를 1증가
    6-3). 현재 cnt를 curCnt 변수에 저장해두고 쿠폰을 쓰지 않았다면 1증가
    6-4). curCnt와 max를 비교해 최댓값 갱신
  7. 최댓값 출력

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yangseoh22
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

양서희 / 2024.08.17 - #54

Open
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main
Open

양서희 / 2024.08.17#54
yangseoh22 wants to merge 2 commits into
IPLaboratory:mainfrom
yangseoh22:main

Conversation

@yangseoh22

Copy link
Copy Markdown
Contributor

✅ 1806 - 부분합

  1. 수열 입력 받아 배열에 저장
  2. 반복문을 통해 배열 속 값들을 순회 (왼쪽 포인터 : i / 오른쪽 포인터 : right)
    2-1). 부분합이 S이하이고 right가 배열의 길이를 벗어나지 않았다면, 포인터가 가리킨 원소들의 합(currSum)을 저장
    2-2). currSum이 S이상이라면, i와 right의 간격을 구하고, S이상이 되다는 의미로 flag를 true로 갱신
    2-3). 부분합이 S이상인 경우들의 두 포인터의 간격들 중 최솟값을 구함
    2-4). 다음 부분합을 구하기 위해 curSum에서 i위치의 원소 값을 뺌
  3. flag가 flase라면 0을, 아니라면 구한 최솟값을 출력

✅ 2531 - 회전초밥

  1. 현재 초밥 벨트 위에 존재하는 초밥의 종류들을 배열에 저장
  2. 현재 주기의 먹은 초밥들을 저장할 eat 배열 생성
  3. 초기화를 위해 처음~k개를 먹었을 때의 초밥 가짓수 cnt를 구함 (eat의 원소가 0일 경우를 이용)
  4. 먹은 초밥의 eat 배열 원소도 함께 증가 시켜줌
  5. max라는 변수에 cnt만큼 할당해주고, 쿠폰을 쓰지 않았다면 max+1
  6. 두번째 접시 부터 k개를 먹는 경우를 모두 조사
    6-1-1). 이전 주기에서의 시작 스시의 인덱스 startIdx를 구함
    6-1-2). 현재 주기에서는 먹지 않으므로 해당 인덱스의 eat 원소를 1감소
    6-1-3). 바로 전단계에서 변화된 eat원소가 0이라면 현재 주기에서 먹지 않는 종류 이므로 cnt를 1감소
    6-2-1). 현재 주기에서의 마지막 스시의 인덱스 endIdx를 구함
    6-2-2). 해당 인덱스의 eat원소가 0이라면 현재 주기에서 처음 먹는 종류 이므로 cnt를 1증가
    6-2-3). 현재 주기에서 먹었으므로 해당 인덱스의 eat 원소를 1증가
    6-3). 현재 cnt를 curCnt 변수에 저장해두고 쿠폰을 쓰지 않았다면 1증가
    6-4). curCnt와 max를 비교해 최댓값 갱신
  7. 최댓값 출력

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yangseoh22