This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-08-16] sumin #112 - #128

Merged
ksumini merged 4 commits into
mainfrom
sumin-#112
Aug 22, 2023
Merged

[2023-08-16] sumin #112#128
ksumini merged 4 commits into
mainfrom
sumin-#112

Conversation

@ksumini

@ksuminiksumini commented Aug 16, 2023

Copy link
Copy Markdown
Contributor

PR Summary

풀이시간: 40분

<input>

  • n: 행의 개수(3 <= m <= 300)
  • m: 열의 개수(3 <= m <= 300)

<solution>

  1. 각 빙산 좌표에서 BFS를 통해 빙산과 인접한 바다가 있는 만큼 빙산을 녹여준다.
  2. 빙산이 모두 녹을 때까지 또는 빙산이 두 개 이상으로 분리될 때까지 시간을 증가시키며 반복한다.

<시간복잡도>
O(10 * k * n*m)

  • 10: 빙산 한 겹이 사라지는데 걸리는 시간
  • k: 빙산의 겹은 최대 100
  • n*m: 빙산 하나에 대한 BFS

@ksuminiksumini added the BOJ label Aug 16, 2023
@ksuminiksumini self-assigned this Aug 16, 2023
@ksuminiksumini linked an issue Aug 16, 2023 that may be closed by this pull request

@Woo-YeolWoo-Yeol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생각에 대한 정리가 리뷰를 하면서 되는 것 같아서 갑자기 힘이 빠지네요... 좋은 코드로 가독성 너무 좋게 작성해주셔서 많은 도움이 되었습니다. 감사합니다. 수민님!

Comment threadBOJ/빙산/sumin.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와 생각해보니 꼭 덱을 안써도 괜찮네요 순서를 보장하지 않아도 좋으니 set을 써서 시간을 조금 더 올리는 것이 좋아보입니다!

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ice는 말씀해주신 것처럼 현재 남아있는 빙산의 좌표를 유지하는 역할이라 순서는 중요하지 않아요!
BFS함수에서 빙산이 녹아버리면(0이 되면) ice에서 해당 빙산의 좌표를 remove 해줘 최신 상태의 빙산 좌표를 유지할 수 있어요~!!!

@zsmallazsmalla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

@ksumini

Copy link
Copy Markdown
ContributorAuthor

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

주석이 부족했던 것 같아요!! ㅜㅜ
ice는 항상 현재 남아있는 빙산의 좌표를 유지하는 역할을 위해 사용했어요!

@ksumini
ksumini removed the request for review from limstonestoneAugust 18, 2023 10:55
@ksumini
ksumini merged commit 2d3eda4 into mainAug 22, 2023
@ksumini
ksumini deleted the sumin-#112 branch August 22, 2023 01:19
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 빙산

3 participants

@ksumini@Woo-Yeol@zsmalla
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 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
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-08-16] sumin #112 - #128

Merged
ksumini merged 4 commits into
mainfrom
sumin-#112
Aug 22, 2023
Merged

[2023-08-16] sumin #112#128
ksumini merged 4 commits into
mainfrom
sumin-#112

Conversation

@ksumini

@ksuminiksumini commented Aug 16, 2023

Copy link
Copy Markdown
Contributor

PR Summary

풀이시간: 40분

<input>

  • n: 행의 개수(3 <= m <= 300)
  • m: 열의 개수(3 <= m <= 300)

<solution>

  1. 각 빙산 좌표에서 BFS를 통해 빙산과 인접한 바다가 있는 만큼 빙산을 녹여준다.
  2. 빙산이 모두 녹을 때까지 또는 빙산이 두 개 이상으로 분리될 때까지 시간을 증가시키며 반복한다.

<시간복잡도>
O(10 * k * n*m)

  • 10: 빙산 한 겹이 사라지는데 걸리는 시간
  • k: 빙산의 겹은 최대 100
  • n*m: 빙산 하나에 대한 BFS

@ksuminiksumini added the BOJ label Aug 16, 2023
@ksuminiksumini self-assigned this Aug 16, 2023
@ksuminiksumini linked an issue Aug 16, 2023 that may be closed by this pull request

@Woo-YeolWoo-Yeol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생각에 대한 정리가 리뷰를 하면서 되는 것 같아서 갑자기 힘이 빠지네요... 좋은 코드로 가독성 너무 좋게 작성해주셔서 많은 도움이 되었습니다. 감사합니다. 수민님!

Comment threadBOJ/빙산/sumin.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와 생각해보니 꼭 덱을 안써도 괜찮네요 순서를 보장하지 않아도 좋으니 set을 써서 시간을 조금 더 올리는 것이 좋아보입니다!

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ice는 말씀해주신 것처럼 현재 남아있는 빙산의 좌표를 유지하는 역할이라 순서는 중요하지 않아요!
BFS함수에서 빙산이 녹아버리면(0이 되면) ice에서 해당 빙산의 좌표를 remove 해줘 최신 상태의 빙산 좌표를 유지할 수 있어요~!!!

@zsmallazsmalla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

@ksumini

Copy link
Copy Markdown
ContributorAuthor

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

주석이 부족했던 것 같아요!! ㅜㅜ
ice는 항상 현재 남아있는 빙산의 좌표를 유지하는 역할을 위해 사용했어요!

@ksumini
ksumini removed the request for review from limstonestoneAugust 18, 2023 10:55
@ksumini
ksumini merged commit 2d3eda4 into mainAug 22, 2023
@ksumini
ksumini deleted the sumin-#112 branch August 22, 2023 01:19
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 빙산

3 participants

@ksumini@Woo-Yeol@zsmalla
, '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
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-08-16] sumin #112 - #128

Merged
ksumini merged 4 commits into
mainfrom
sumin-#112
Aug 22, 2023
Merged

[2023-08-16] sumin #112#128
ksumini merged 4 commits into
mainfrom
sumin-#112

Conversation

@ksumini

@ksuminiksumini commented Aug 16, 2023

Copy link
Copy Markdown
Contributor

PR Summary

풀이시간: 40분

<input>

  • n: 행의 개수(3 <= m <= 300)
  • m: 열의 개수(3 <= m <= 300)

<solution>

  1. 각 빙산 좌표에서 BFS를 통해 빙산과 인접한 바다가 있는 만큼 빙산을 녹여준다.
  2. 빙산이 모두 녹을 때까지 또는 빙산이 두 개 이상으로 분리될 때까지 시간을 증가시키며 반복한다.

<시간복잡도>
O(10 * k * n*m)

  • 10: 빙산 한 겹이 사라지는데 걸리는 시간
  • k: 빙산의 겹은 최대 100
  • n*m: 빙산 하나에 대한 BFS

@ksuminiksumini added the BOJ label Aug 16, 2023
@ksuminiksumini self-assigned this Aug 16, 2023
@ksuminiksumini linked an issue Aug 16, 2023 that may be closed by this pull request

@Woo-YeolWoo-Yeol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생각에 대한 정리가 리뷰를 하면서 되는 것 같아서 갑자기 힘이 빠지네요... 좋은 코드로 가독성 너무 좋게 작성해주셔서 많은 도움이 되었습니다. 감사합니다. 수민님!

Comment threadBOJ/빙산/sumin.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와 생각해보니 꼭 덱을 안써도 괜찮네요 순서를 보장하지 않아도 좋으니 set을 써서 시간을 조금 더 올리는 것이 좋아보입니다!

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ice는 말씀해주신 것처럼 현재 남아있는 빙산의 좌표를 유지하는 역할이라 순서는 중요하지 않아요!
BFS함수에서 빙산이 녹아버리면(0이 되면) ice에서 해당 빙산의 좌표를 remove 해줘 최신 상태의 빙산 좌표를 유지할 수 있어요~!!!

@zsmallazsmalla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

@ksumini

Copy link
Copy Markdown
ContributorAuthor

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

주석이 부족했던 것 같아요!! ㅜㅜ
ice는 항상 현재 남아있는 빙산의 좌표를 유지하는 역할을 위해 사용했어요!

@ksumini
ksumini removed the request for review from limstonestoneAugust 18, 2023 10:55
@ksumini
ksumini merged commit 2d3eda4 into mainAug 22, 2023
@ksumini
ksumini deleted the sumin-#112 branch August 22, 2023 01:19
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 빙산

3 participants

@ksumini@Woo-Yeol@zsmalla
, '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 > 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
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-08-16] sumin #112 - #128

Merged
ksumini merged 4 commits into
mainfrom
sumin-#112
Aug 22, 2023
Merged

[2023-08-16] sumin #112#128
ksumini merged 4 commits into
mainfrom
sumin-#112

Conversation

@ksumini

@ksuminiksumini commented Aug 16, 2023

Copy link
Copy Markdown
Contributor

PR Summary

풀이시간: 40분

<input>

  • n: 행의 개수(3 <= m <= 300)
  • m: 열의 개수(3 <= m <= 300)

<solution>

  1. 각 빙산 좌표에서 BFS를 통해 빙산과 인접한 바다가 있는 만큼 빙산을 녹여준다.
  2. 빙산이 모두 녹을 때까지 또는 빙산이 두 개 이상으로 분리될 때까지 시간을 증가시키며 반복한다.

<시간복잡도>
O(10 * k * n*m)

  • 10: 빙산 한 겹이 사라지는데 걸리는 시간
  • k: 빙산의 겹은 최대 100
  • n*m: 빙산 하나에 대한 BFS

@ksuminiksumini added the BOJ label Aug 16, 2023
@ksuminiksumini self-assigned this Aug 16, 2023
@ksuminiksumini linked an issue Aug 16, 2023 that may be closed by this pull request

@Woo-YeolWoo-Yeol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생각에 대한 정리가 리뷰를 하면서 되는 것 같아서 갑자기 힘이 빠지네요... 좋은 코드로 가독성 너무 좋게 작성해주셔서 많은 도움이 되었습니다. 감사합니다. 수민님!

Comment threadBOJ/빙산/sumin.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와 생각해보니 꼭 덱을 안써도 괜찮네요 순서를 보장하지 않아도 좋으니 set을 써서 시간을 조금 더 올리는 것이 좋아보입니다!

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ice는 말씀해주신 것처럼 현재 남아있는 빙산의 좌표를 유지하는 역할이라 순서는 중요하지 않아요!
BFS함수에서 빙산이 녹아버리면(0이 되면) ice에서 해당 빙산의 좌표를 remove 해줘 최신 상태의 빙산 좌표를 유지할 수 있어요~!!!

@zsmallazsmalla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

@ksumini

Copy link
Copy Markdown
ContributorAuthor

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

주석이 부족했던 것 같아요!! ㅜㅜ
ice는 항상 현재 남아있는 빙산의 좌표를 유지하는 역할을 위해 사용했어요!

@ksumini
ksumini removed the request for review from limstonestoneAugust 18, 2023 10:55
@ksumini
ksumini merged commit 2d3eda4 into mainAug 22, 2023
@ksumini
ksumini deleted the sumin-#112 branch August 22, 2023 01:19
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 빙산

3 participants

@ksumini@Woo-Yeol@zsmalla
, '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
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-08-16] sumin #112 - #128

Merged
ksumini merged 4 commits into
mainfrom
sumin-#112
Aug 22, 2023
Merged

[2023-08-16] sumin #112#128
ksumini merged 4 commits into
mainfrom
sumin-#112

Conversation

@ksumini

@ksuminiksumini commented Aug 16, 2023

Copy link
Copy Markdown
Contributor

PR Summary

풀이시간: 40분

<input>

  • n: 행의 개수(3 <= m <= 300)
  • m: 열의 개수(3 <= m <= 300)

<solution>

  1. 각 빙산 좌표에서 BFS를 통해 빙산과 인접한 바다가 있는 만큼 빙산을 녹여준다.
  2. 빙산이 모두 녹을 때까지 또는 빙산이 두 개 이상으로 분리될 때까지 시간을 증가시키며 반복한다.

<시간복잡도>
O(10 * k * n*m)

  • 10: 빙산 한 겹이 사라지는데 걸리는 시간
  • k: 빙산의 겹은 최대 100
  • n*m: 빙산 하나에 대한 BFS

@ksuminiksumini added the BOJ label Aug 16, 2023
@ksuminiksumini self-assigned this Aug 16, 2023
@ksuminiksumini linked an issue Aug 16, 2023 that may be closed by this pull request

@Woo-YeolWoo-Yeol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생각에 대한 정리가 리뷰를 하면서 되는 것 같아서 갑자기 힘이 빠지네요... 좋은 코드로 가독성 너무 좋게 작성해주셔서 많은 도움이 되었습니다. 감사합니다. 수민님!

Comment threadBOJ/빙산/sumin.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와 생각해보니 꼭 덱을 안써도 괜찮네요 순서를 보장하지 않아도 좋으니 set을 써서 시간을 조금 더 올리는 것이 좋아보입니다!

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ice는 말씀해주신 것처럼 현재 남아있는 빙산의 좌표를 유지하는 역할이라 순서는 중요하지 않아요!
BFS함수에서 빙산이 녹아버리면(0이 되면) ice에서 해당 빙산의 좌표를 remove 해줘 최신 상태의 빙산 좌표를 유지할 수 있어요~!!!

@zsmallazsmalla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

@ksumini

Copy link
Copy Markdown
ContributorAuthor

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

주석이 부족했던 것 같아요!! ㅜㅜ
ice는 항상 현재 남아있는 빙산의 좌표를 유지하는 역할을 위해 사용했어요!

@ksumini
ksumini removed the request for review from limstonestoneAugust 18, 2023 10:55
@ksumini
ksumini merged commit 2d3eda4 into mainAug 22, 2023
@ksumini
ksumini deleted the sumin-#112 branch August 22, 2023 01:19
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 빙산

3 participants

@ksumini@Woo-Yeol@zsmalla
, '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
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-08-16] sumin #112 - #128

Merged
ksumini merged 4 commits into
mainfrom
sumin-#112
Aug 22, 2023
Merged

[2023-08-16] sumin #112#128
ksumini merged 4 commits into
mainfrom
sumin-#112

Conversation

@ksumini

@ksuminiksumini commented Aug 16, 2023

Copy link
Copy Markdown
Contributor

PR Summary

풀이시간: 40분

<input>

  • n: 행의 개수(3 <= m <= 300)
  • m: 열의 개수(3 <= m <= 300)

<solution>

  1. 각 빙산 좌표에서 BFS를 통해 빙산과 인접한 바다가 있는 만큼 빙산을 녹여준다.
  2. 빙산이 모두 녹을 때까지 또는 빙산이 두 개 이상으로 분리될 때까지 시간을 증가시키며 반복한다.

<시간복잡도>
O(10 * k * n*m)

  • 10: 빙산 한 겹이 사라지는데 걸리는 시간
  • k: 빙산의 겹은 최대 100
  • n*m: 빙산 하나에 대한 BFS

@ksuminiksumini added the BOJ label Aug 16, 2023
@ksuminiksumini self-assigned this Aug 16, 2023
@ksuminiksumini linked an issue Aug 16, 2023 that may be closed by this pull request

@Woo-YeolWoo-Yeol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생각에 대한 정리가 리뷰를 하면서 되는 것 같아서 갑자기 힘이 빠지네요... 좋은 코드로 가독성 너무 좋게 작성해주셔서 많은 도움이 되었습니다. 감사합니다. 수민님!

Comment threadBOJ/빙산/sumin.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와 생각해보니 꼭 덱을 안써도 괜찮네요 순서를 보장하지 않아도 좋으니 set을 써서 시간을 조금 더 올리는 것이 좋아보입니다!

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ice는 말씀해주신 것처럼 현재 남아있는 빙산의 좌표를 유지하는 역할이라 순서는 중요하지 않아요!
BFS함수에서 빙산이 녹아버리면(0이 되면) ice에서 해당 빙산의 좌표를 remove 해줘 최신 상태의 빙산 좌표를 유지할 수 있어요~!!!

@zsmallazsmalla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

@ksumini

Copy link
Copy Markdown
ContributorAuthor

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

주석이 부족했던 것 같아요!! ㅜㅜ
ice는 항상 현재 남아있는 빙산의 좌표를 유지하는 역할을 위해 사용했어요!

@ksumini
ksumini removed the request for review from limstonestoneAugust 18, 2023 10:55
@ksumini
ksumini merged commit 2d3eda4 into mainAug 22, 2023
@ksumini
ksumini deleted the sumin-#112 branch August 22, 2023 01:19
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 빙산

3 participants

@ksumini@Woo-Yeol@zsmalla
, '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
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-08-16] sumin #112 - #128

Merged
ksumini merged 4 commits into
mainfrom
sumin-#112
Aug 22, 2023
Merged

[2023-08-16] sumin #112#128
ksumini merged 4 commits into
mainfrom
sumin-#112

Conversation

@ksumini

@ksuminiksumini commented Aug 16, 2023

Copy link
Copy Markdown
Contributor

PR Summary

풀이시간: 40분

<input>

  • n: 행의 개수(3 <= m <= 300)
  • m: 열의 개수(3 <= m <= 300)

<solution>

  1. 각 빙산 좌표에서 BFS를 통해 빙산과 인접한 바다가 있는 만큼 빙산을 녹여준다.
  2. 빙산이 모두 녹을 때까지 또는 빙산이 두 개 이상으로 분리될 때까지 시간을 증가시키며 반복한다.

<시간복잡도>
O(10 * k * n*m)

  • 10: 빙산 한 겹이 사라지는데 걸리는 시간
  • k: 빙산의 겹은 최대 100
  • n*m: 빙산 하나에 대한 BFS

@ksuminiksumini added the BOJ label Aug 16, 2023
@ksuminiksumini self-assigned this Aug 16, 2023
@ksuminiksumini linked an issue Aug 16, 2023 that may be closed by this pull request

@Woo-YeolWoo-Yeol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생각에 대한 정리가 리뷰를 하면서 되는 것 같아서 갑자기 힘이 빠지네요... 좋은 코드로 가독성 너무 좋게 작성해주셔서 많은 도움이 되었습니다. 감사합니다. 수민님!

Comment threadBOJ/빙산/sumin.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와 생각해보니 꼭 덱을 안써도 괜찮네요 순서를 보장하지 않아도 좋으니 set을 써서 시간을 조금 더 올리는 것이 좋아보입니다!

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ice는 말씀해주신 것처럼 현재 남아있는 빙산의 좌표를 유지하는 역할이라 순서는 중요하지 않아요!
BFS함수에서 빙산이 녹아버리면(0이 되면) ice에서 해당 빙산의 좌표를 remove 해줘 최신 상태의 빙산 좌표를 유지할 수 있어요~!!!

@zsmallazsmalla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

@ksumini

Copy link
Copy Markdown
ContributorAuthor

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

주석이 부족했던 것 같아요!! ㅜㅜ
ice는 항상 현재 남아있는 빙산의 좌표를 유지하는 역할을 위해 사용했어요!

@ksumini
ksumini removed the request for review from limstonestoneAugust 18, 2023 10:55
@ksumini
ksumini merged commit 2d3eda4 into mainAug 22, 2023
@ksumini
ksumini deleted the sumin-#112 branch August 22, 2023 01:19
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 빙산

3 participants

@ksumini@Woo-Yeol@zsmalla
, '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
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-08-16] sumin #112 - #128

Merged
ksumini merged 4 commits into
mainfrom
sumin-#112
Aug 22, 2023
Merged

[2023-08-16] sumin #112#128
ksumini merged 4 commits into
mainfrom
sumin-#112

Conversation

@ksumini

@ksuminiksumini commented Aug 16, 2023

Copy link
Copy Markdown
Contributor

PR Summary

풀이시간: 40분

<input>

  • n: 행의 개수(3 <= m <= 300)
  • m: 열의 개수(3 <= m <= 300)

<solution>

  1. 각 빙산 좌표에서 BFS를 통해 빙산과 인접한 바다가 있는 만큼 빙산을 녹여준다.
  2. 빙산이 모두 녹을 때까지 또는 빙산이 두 개 이상으로 분리될 때까지 시간을 증가시키며 반복한다.

<시간복잡도>
O(10 * k * n*m)

  • 10: 빙산 한 겹이 사라지는데 걸리는 시간
  • k: 빙산의 겹은 최대 100
  • n*m: 빙산 하나에 대한 BFS

@ksuminiksumini added the BOJ label Aug 16, 2023
@ksuminiksumini self-assigned this Aug 16, 2023
@ksuminiksumini linked an issue Aug 16, 2023 that may be closed by this pull request

@Woo-YeolWoo-Yeol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생각에 대한 정리가 리뷰를 하면서 되는 것 같아서 갑자기 힘이 빠지네요... 좋은 코드로 가독성 너무 좋게 작성해주셔서 많은 도움이 되었습니다. 감사합니다. 수민님!

Comment threadBOJ/빙산/sumin.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

와 생각해보니 꼭 덱을 안써도 괜찮네요 순서를 보장하지 않아도 좋으니 set을 써서 시간을 조금 더 올리는 것이 좋아보입니다!

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ice는 말씀해주신 것처럼 현재 남아있는 빙산의 좌표를 유지하는 역할이라 순서는 중요하지 않아요!
BFS함수에서 빙산이 녹아버리면(0이 되면) ice에서 해당 빙산의 좌표를 remove 해줘 최신 상태의 빙산 좌표를 유지할 수 있어요~!!!

@zsmallazsmalla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

@ksumini

Copy link
Copy Markdown
ContributorAuthor

왜 ice라는 set을 활용했는지 풀이를 보면서 의문이었는데, 값이 0인 위치가 빙산이었는지, 애초에 바다였는지 구분하기 위함이군요! 좋은 풀이라고 생각합니다. set을 활용한 이유를 조금 더 명시적으로 작성해주시면 코드를 처음 보는 입장에서 더 좋을 것 같다고 생각합니다. 수민님 고생하셨습니다!

주석이 부족했던 것 같아요!! ㅜㅜ
ice는 항상 현재 남아있는 빙산의 좌표를 유지하는 역할을 위해 사용했어요!

@ksumini
ksumini removed the request for review from limstonestoneAugust 18, 2023 10:55
@ksumini
ksumini merged commit 2d3eda4 into mainAug 22, 2023
@ksumini
ksumini deleted the sumin-#112 branch August 22, 2023 01:19
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 빙산

3 participants

@ksumini@Woo-Yeol@zsmalla