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

[2023-09-29] wooyeol #271 - #295

Merged
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271
Oct 6, 2023
Merged

[2023-09-29] wooyeol #271#295
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271

Conversation

@Woo-Yeol

Copy link
Copy Markdown
Member

PR Summary

문자열 지옥에 빠진 호석
https://www.acmicpc.net/problem/20166

풀이시간
12:42 ~ (문제 풀이 실패)

문제 조건
3 <= N,M <= 10
1 <= K <= 1,000
1 <= 신이 좋아하는 문자열 <= 5

시간 복잡도 :
O(N * M * 8^5 + K)
O(3,277,800)

접근법
무슨 알고리즘으로 풀이 할 수 있을까? -> BFS 탐색

  1. 만들어질 수 있는 모든 문자열을 탐색하여 해시테이블에 등록
  2. 등록된 해시 테이블의 값에서 입력받은 문자열의 값을 반환

@Woo-YeolWoo-Yeol self-assigned this Sep 30, 2023
@Woo-YeolWoo-Yeol linked an issue Sep 30, 2023 that may be closed by this pull request
@Woo-Yeol

Copy link
Copy Markdown
MemberAuthor

늦어서 죄송합니다 여러분들 ㅠㅠㅠㅠ

@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.

풀이 고생하셨습니다 우열님. BFS로 깔끔하게 로직을 작성하셨네요. 모든 알파벳에 대한 경우의 수를 구해놓고 효율적으로 답을 도출할 수 있게 잘 풀이하신 것 같습니다.

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.

큐에 삽입할 때(52번 라인) 이 조건문을 추가해주면 연산 횟수도 줄고 조금 더 깔끔해지지 않을까 싶습니다!

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.

별 다른 추가 연산이 없기 때문에 57 ~ 59번 라인을 table = [input().rstrip() for _ in range(N)] 으로 가능! 파이써닉하게 가봅시다

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.

우열님 이부분은 range(len()) 을 사용하셔도 괜찮을 것 같습니다!!
제 로컬 IDE 에서 돌려보니 약 1.75 배정도 속도차이가 나네요!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

저는 DFS로 풀이했는데, 우열님께서 BFS로 깔끔하게 풀이해주신것 같아요~!! 고생하셨습니다 :)

@Woo-Yeol
Woo-Yeol merged commit 0bfcffa into mainOct 6, 2023
@zsmalla
zsmalla deleted the wooyeol-#271 branch March 18, 2024 10:07
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] 문자열 지옥에 빠진 호석

4 participants

@Woo-Yeol@ksumini@zsmalla@limstonestone
, '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-09-29] wooyeol #271 - #295

Merged
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271
Oct 6, 2023
Merged

[2023-09-29] wooyeol #271#295
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271

Conversation

@Woo-Yeol

Copy link
Copy Markdown
Member

PR Summary

문자열 지옥에 빠진 호석
https://www.acmicpc.net/problem/20166

풀이시간
12:42 ~ (문제 풀이 실패)

문제 조건
3 <= N,M <= 10
1 <= K <= 1,000
1 <= 신이 좋아하는 문자열 <= 5

시간 복잡도 :
O(N * M * 8^5 + K)
O(3,277,800)

접근법
무슨 알고리즘으로 풀이 할 수 있을까? -> BFS 탐색

  1. 만들어질 수 있는 모든 문자열을 탐색하여 해시테이블에 등록
  2. 등록된 해시 테이블의 값에서 입력받은 문자열의 값을 반환

@Woo-YeolWoo-Yeol self-assigned this Sep 30, 2023
@Woo-YeolWoo-Yeol linked an issue Sep 30, 2023 that may be closed by this pull request
@Woo-Yeol

Copy link
Copy Markdown
MemberAuthor

늦어서 죄송합니다 여러분들 ㅠㅠㅠㅠ

@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.

풀이 고생하셨습니다 우열님. BFS로 깔끔하게 로직을 작성하셨네요. 모든 알파벳에 대한 경우의 수를 구해놓고 효율적으로 답을 도출할 수 있게 잘 풀이하신 것 같습니다.

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.

큐에 삽입할 때(52번 라인) 이 조건문을 추가해주면 연산 횟수도 줄고 조금 더 깔끔해지지 않을까 싶습니다!

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.

별 다른 추가 연산이 없기 때문에 57 ~ 59번 라인을 table = [input().rstrip() for _ in range(N)] 으로 가능! 파이써닉하게 가봅시다

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.

우열님 이부분은 range(len()) 을 사용하셔도 괜찮을 것 같습니다!!
제 로컬 IDE 에서 돌려보니 약 1.75 배정도 속도차이가 나네요!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

저는 DFS로 풀이했는데, 우열님께서 BFS로 깔끔하게 풀이해주신것 같아요~!! 고생하셨습니다 :)

@Woo-Yeol
Woo-Yeol merged commit 0bfcffa into mainOct 6, 2023
@zsmalla
zsmalla deleted the wooyeol-#271 branch March 18, 2024 10:07
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] 문자열 지옥에 빠진 호석

4 participants

@Woo-Yeol@ksumini@zsmalla@limstonestone
, '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-09-29] wooyeol #271 - #295

Merged
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271
Oct 6, 2023
Merged

[2023-09-29] wooyeol #271#295
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271

Conversation

@Woo-Yeol

Copy link
Copy Markdown
Member

PR Summary

문자열 지옥에 빠진 호석
https://www.acmicpc.net/problem/20166

풀이시간
12:42 ~ (문제 풀이 실패)

문제 조건
3 <= N,M <= 10
1 <= K <= 1,000
1 <= 신이 좋아하는 문자열 <= 5

시간 복잡도 :
O(N * M * 8^5 + K)
O(3,277,800)

접근법
무슨 알고리즘으로 풀이 할 수 있을까? -> BFS 탐색

  1. 만들어질 수 있는 모든 문자열을 탐색하여 해시테이블에 등록
  2. 등록된 해시 테이블의 값에서 입력받은 문자열의 값을 반환

@Woo-YeolWoo-Yeol self-assigned this Sep 30, 2023
@Woo-YeolWoo-Yeol linked an issue Sep 30, 2023 that may be closed by this pull request
@Woo-Yeol

Copy link
Copy Markdown
MemberAuthor

늦어서 죄송합니다 여러분들 ㅠㅠㅠㅠ

@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.

풀이 고생하셨습니다 우열님. BFS로 깔끔하게 로직을 작성하셨네요. 모든 알파벳에 대한 경우의 수를 구해놓고 효율적으로 답을 도출할 수 있게 잘 풀이하신 것 같습니다.

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.

큐에 삽입할 때(52번 라인) 이 조건문을 추가해주면 연산 횟수도 줄고 조금 더 깔끔해지지 않을까 싶습니다!

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.

별 다른 추가 연산이 없기 때문에 57 ~ 59번 라인을 table = [input().rstrip() for _ in range(N)] 으로 가능! 파이써닉하게 가봅시다

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.

우열님 이부분은 range(len()) 을 사용하셔도 괜찮을 것 같습니다!!
제 로컬 IDE 에서 돌려보니 약 1.75 배정도 속도차이가 나네요!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

저는 DFS로 풀이했는데, 우열님께서 BFS로 깔끔하게 풀이해주신것 같아요~!! 고생하셨습니다 :)

@Woo-Yeol
Woo-Yeol merged commit 0bfcffa into mainOct 6, 2023
@zsmalla
zsmalla deleted the wooyeol-#271 branch March 18, 2024 10:07
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] 문자열 지옥에 빠진 호석

4 participants

@Woo-Yeol@ksumini@zsmalla@limstonestone
, '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-09-29] wooyeol #271 - #295

Merged
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271
Oct 6, 2023
Merged

[2023-09-29] wooyeol #271#295
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271

Conversation

@Woo-Yeol

Copy link
Copy Markdown
Member

PR Summary

문자열 지옥에 빠진 호석
https://www.acmicpc.net/problem/20166

풀이시간
12:42 ~ (문제 풀이 실패)

문제 조건
3 <= N,M <= 10
1 <= K <= 1,000
1 <= 신이 좋아하는 문자열 <= 5

시간 복잡도 :
O(N * M * 8^5 + K)
O(3,277,800)

접근법
무슨 알고리즘으로 풀이 할 수 있을까? -> BFS 탐색

  1. 만들어질 수 있는 모든 문자열을 탐색하여 해시테이블에 등록
  2. 등록된 해시 테이블의 값에서 입력받은 문자열의 값을 반환

@Woo-YeolWoo-Yeol self-assigned this Sep 30, 2023
@Woo-YeolWoo-Yeol linked an issue Sep 30, 2023 that may be closed by this pull request
@Woo-Yeol

Copy link
Copy Markdown
MemberAuthor

늦어서 죄송합니다 여러분들 ㅠㅠㅠㅠ

@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.

풀이 고생하셨습니다 우열님. BFS로 깔끔하게 로직을 작성하셨네요. 모든 알파벳에 대한 경우의 수를 구해놓고 효율적으로 답을 도출할 수 있게 잘 풀이하신 것 같습니다.

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.

큐에 삽입할 때(52번 라인) 이 조건문을 추가해주면 연산 횟수도 줄고 조금 더 깔끔해지지 않을까 싶습니다!

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.

별 다른 추가 연산이 없기 때문에 57 ~ 59번 라인을 table = [input().rstrip() for _ in range(N)] 으로 가능! 파이써닉하게 가봅시다

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.

우열님 이부분은 range(len()) 을 사용하셔도 괜찮을 것 같습니다!!
제 로컬 IDE 에서 돌려보니 약 1.75 배정도 속도차이가 나네요!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

저는 DFS로 풀이했는데, 우열님께서 BFS로 깔끔하게 풀이해주신것 같아요~!! 고생하셨습니다 :)

@Woo-Yeol
Woo-Yeol merged commit 0bfcffa into mainOct 6, 2023
@zsmalla
zsmalla deleted the wooyeol-#271 branch March 18, 2024 10:07
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] 문자열 지옥에 빠진 호석

4 participants

@Woo-Yeol@ksumini@zsmalla@limstonestone
, '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-09-29] wooyeol #271 - #295

Merged
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271
Oct 6, 2023
Merged

[2023-09-29] wooyeol #271#295
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271

Conversation

@Woo-Yeol

Copy link
Copy Markdown
Member

PR Summary

문자열 지옥에 빠진 호석
https://www.acmicpc.net/problem/20166

풀이시간
12:42 ~ (문제 풀이 실패)

문제 조건
3 <= N,M <= 10
1 <= K <= 1,000
1 <= 신이 좋아하는 문자열 <= 5

시간 복잡도 :
O(N * M * 8^5 + K)
O(3,277,800)

접근법
무슨 알고리즘으로 풀이 할 수 있을까? -> BFS 탐색

  1. 만들어질 수 있는 모든 문자열을 탐색하여 해시테이블에 등록
  2. 등록된 해시 테이블의 값에서 입력받은 문자열의 값을 반환

@Woo-YeolWoo-Yeol self-assigned this Sep 30, 2023
@Woo-YeolWoo-Yeol linked an issue Sep 30, 2023 that may be closed by this pull request
@Woo-Yeol

Copy link
Copy Markdown
MemberAuthor

늦어서 죄송합니다 여러분들 ㅠㅠㅠㅠ

@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.

풀이 고생하셨습니다 우열님. BFS로 깔끔하게 로직을 작성하셨네요. 모든 알파벳에 대한 경우의 수를 구해놓고 효율적으로 답을 도출할 수 있게 잘 풀이하신 것 같습니다.

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.

큐에 삽입할 때(52번 라인) 이 조건문을 추가해주면 연산 횟수도 줄고 조금 더 깔끔해지지 않을까 싶습니다!

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.

별 다른 추가 연산이 없기 때문에 57 ~ 59번 라인을 table = [input().rstrip() for _ in range(N)] 으로 가능! 파이써닉하게 가봅시다

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.

우열님 이부분은 range(len()) 을 사용하셔도 괜찮을 것 같습니다!!
제 로컬 IDE 에서 돌려보니 약 1.75 배정도 속도차이가 나네요!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

저는 DFS로 풀이했는데, 우열님께서 BFS로 깔끔하게 풀이해주신것 같아요~!! 고생하셨습니다 :)

@Woo-Yeol
Woo-Yeol merged commit 0bfcffa into mainOct 6, 2023
@zsmalla
zsmalla deleted the wooyeol-#271 branch March 18, 2024 10:07
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] 문자열 지옥에 빠진 호석

4 participants

@Woo-Yeol@ksumini@zsmalla@limstonestone
, '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-09-29] wooyeol #271 - #295

Merged
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271
Oct 6, 2023
Merged

[2023-09-29] wooyeol #271#295
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271

Conversation

@Woo-Yeol

Copy link
Copy Markdown
Member

PR Summary

문자열 지옥에 빠진 호석
https://www.acmicpc.net/problem/20166

풀이시간
12:42 ~ (문제 풀이 실패)

문제 조건
3 <= N,M <= 10
1 <= K <= 1,000
1 <= 신이 좋아하는 문자열 <= 5

시간 복잡도 :
O(N * M * 8^5 + K)
O(3,277,800)

접근법
무슨 알고리즘으로 풀이 할 수 있을까? -> BFS 탐색

  1. 만들어질 수 있는 모든 문자열을 탐색하여 해시테이블에 등록
  2. 등록된 해시 테이블의 값에서 입력받은 문자열의 값을 반환

@Woo-YeolWoo-Yeol self-assigned this Sep 30, 2023
@Woo-YeolWoo-Yeol linked an issue Sep 30, 2023 that may be closed by this pull request
@Woo-Yeol

Copy link
Copy Markdown
MemberAuthor

늦어서 죄송합니다 여러분들 ㅠㅠㅠㅠ

@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.

풀이 고생하셨습니다 우열님. BFS로 깔끔하게 로직을 작성하셨네요. 모든 알파벳에 대한 경우의 수를 구해놓고 효율적으로 답을 도출할 수 있게 잘 풀이하신 것 같습니다.

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.

큐에 삽입할 때(52번 라인) 이 조건문을 추가해주면 연산 횟수도 줄고 조금 더 깔끔해지지 않을까 싶습니다!

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.

별 다른 추가 연산이 없기 때문에 57 ~ 59번 라인을 table = [input().rstrip() for _ in range(N)] 으로 가능! 파이써닉하게 가봅시다

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.

우열님 이부분은 range(len()) 을 사용하셔도 괜찮을 것 같습니다!!
제 로컬 IDE 에서 돌려보니 약 1.75 배정도 속도차이가 나네요!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

저는 DFS로 풀이했는데, 우열님께서 BFS로 깔끔하게 풀이해주신것 같아요~!! 고생하셨습니다 :)

@Woo-Yeol
Woo-Yeol merged commit 0bfcffa into mainOct 6, 2023
@zsmalla
zsmalla deleted the wooyeol-#271 branch March 18, 2024 10:07
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] 문자열 지옥에 빠진 호석

4 participants

@Woo-Yeol@ksumini@zsmalla@limstonestone
, '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-09-29] wooyeol #271 - #295

Merged
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271
Oct 6, 2023
Merged

[2023-09-29] wooyeol #271#295
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271

Conversation

@Woo-Yeol

Copy link
Copy Markdown
Member

PR Summary

문자열 지옥에 빠진 호석
https://www.acmicpc.net/problem/20166

풀이시간
12:42 ~ (문제 풀이 실패)

문제 조건
3 <= N,M <= 10
1 <= K <= 1,000
1 <= 신이 좋아하는 문자열 <= 5

시간 복잡도 :
O(N * M * 8^5 + K)
O(3,277,800)

접근법
무슨 알고리즘으로 풀이 할 수 있을까? -> BFS 탐색

  1. 만들어질 수 있는 모든 문자열을 탐색하여 해시테이블에 등록
  2. 등록된 해시 테이블의 값에서 입력받은 문자열의 값을 반환

@Woo-YeolWoo-Yeol self-assigned this Sep 30, 2023
@Woo-YeolWoo-Yeol linked an issue Sep 30, 2023 that may be closed by this pull request
@Woo-Yeol

Copy link
Copy Markdown
MemberAuthor

늦어서 죄송합니다 여러분들 ㅠㅠㅠㅠ

@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.

풀이 고생하셨습니다 우열님. BFS로 깔끔하게 로직을 작성하셨네요. 모든 알파벳에 대한 경우의 수를 구해놓고 효율적으로 답을 도출할 수 있게 잘 풀이하신 것 같습니다.

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.

큐에 삽입할 때(52번 라인) 이 조건문을 추가해주면 연산 횟수도 줄고 조금 더 깔끔해지지 않을까 싶습니다!

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.

별 다른 추가 연산이 없기 때문에 57 ~ 59번 라인을 table = [input().rstrip() for _ in range(N)] 으로 가능! 파이써닉하게 가봅시다

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.

우열님 이부분은 range(len()) 을 사용하셔도 괜찮을 것 같습니다!!
제 로컬 IDE 에서 돌려보니 약 1.75 배정도 속도차이가 나네요!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

저는 DFS로 풀이했는데, 우열님께서 BFS로 깔끔하게 풀이해주신것 같아요~!! 고생하셨습니다 :)

@Woo-Yeol
Woo-Yeol merged commit 0bfcffa into mainOct 6, 2023
@zsmalla
zsmalla deleted the wooyeol-#271 branch March 18, 2024 10:07
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] 문자열 지옥에 빠진 호석

4 participants

@Woo-Yeol@ksumini@zsmalla@limstonestone
, '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-09-29] wooyeol #271 - #295

Merged
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271
Oct 6, 2023
Merged

[2023-09-29] wooyeol #271#295
Woo-Yeol merged 1 commit into
mainfrom
wooyeol-#271

Conversation

@Woo-Yeol

Copy link
Copy Markdown
Member

PR Summary

문자열 지옥에 빠진 호석
https://www.acmicpc.net/problem/20166

풀이시간
12:42 ~ (문제 풀이 실패)

문제 조건
3 <= N,M <= 10
1 <= K <= 1,000
1 <= 신이 좋아하는 문자열 <= 5

시간 복잡도 :
O(N * M * 8^5 + K)
O(3,277,800)

접근법
무슨 알고리즘으로 풀이 할 수 있을까? -> BFS 탐색

  1. 만들어질 수 있는 모든 문자열을 탐색하여 해시테이블에 등록
  2. 등록된 해시 테이블의 값에서 입력받은 문자열의 값을 반환

@Woo-YeolWoo-Yeol self-assigned this Sep 30, 2023
@Woo-YeolWoo-Yeol linked an issue Sep 30, 2023 that may be closed by this pull request
@Woo-Yeol

Copy link
Copy Markdown
MemberAuthor

늦어서 죄송합니다 여러분들 ㅠㅠㅠㅠ

@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.

풀이 고생하셨습니다 우열님. BFS로 깔끔하게 로직을 작성하셨네요. 모든 알파벳에 대한 경우의 수를 구해놓고 효율적으로 답을 도출할 수 있게 잘 풀이하신 것 같습니다.

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.

큐에 삽입할 때(52번 라인) 이 조건문을 추가해주면 연산 횟수도 줄고 조금 더 깔끔해지지 않을까 싶습니다!

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.

별 다른 추가 연산이 없기 때문에 57 ~ 59번 라인을 table = [input().rstrip() for _ in range(N)] 으로 가능! 파이써닉하게 가봅시다

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.

우열님 이부분은 range(len()) 을 사용하셔도 괜찮을 것 같습니다!!
제 로컬 IDE 에서 돌려보니 약 1.75 배정도 속도차이가 나네요!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

도현님이 코멘트 남겨주신 것처럼, 위에서 table의 크기인 N과 M 주어지기 때문에

for row_i in range(N):
for col_i in range(M):
bfs(row_i, col_i)

로 쓰시면 더 깔끔하고 빠를것 같아요~!!!

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.

저는 DFS로 풀이했는데, 우열님께서 BFS로 깔끔하게 풀이해주신것 같아요~!! 고생하셨습니다 :)

@Woo-Yeol
Woo-Yeol merged commit 0bfcffa into mainOct 6, 2023
@zsmalla
zsmalla deleted the wooyeol-#271 branch March 18, 2024 10:07
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] 문자열 지옥에 빠진 호석

4 participants

@Woo-Yeol@ksumini@zsmalla@limstonestone