묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
9996문제 질문있습니다.
앞부분과 뒷부분을 비교해서 DA로 출력하는 조건문에서 조건의 뒷부분을 비교하는 조건에 대해서 이해가 되지 않습니다.string f; (ab * ab 중 앞 ab)string e; (ab * ab 중 뒤 ab) 문제로 제시된 문자열의 사이즈에서 뒷부분의 사이즈를 빼면 조건의 뒷 문자에 대한 조건이 완성되는 이유가 궁금합니다. if(f == s.substr(0,f.size()) && e == s.substr(s.size() - e.size()))
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
투포인트/슬라이딩 윈도우 관련
혹시 투포인터/슬라이딩 윈도우 부분도 강의에 있나요?자바 커리큘럼에는 보니까 있는데 파이썬에는 없어서요. 혹시 추가될 예정이 있나요? 아니면 혹시 커리큘럼속에 포함 되어있는데 제가 못찾는 건가요?감사합니다.
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
체크배열을 set 으로 사용해도될까요?
from collections import deque def solution(home): answer = 0 duplicate = {0} queue = deque([0]) while queue: node_length = len(queue) for _ in range(node_length): node = queue.popleft() if node == home: return answer for child_node in [node - 1, node + 1, node + 5]: if (0 < child_node < 10_000) and (child_node not in duplicate): duplicate.add(child_node) queue.append(child_node) answer += 1강의가 드디어 거의 끝나가네요.. 해당문제를 혼자 풀어봤습니다. 강의에서는 체크배열로 중복을 체크하더군요! 이 중복체크를 체크배열이 아닌 set 로 해결해도 효율적일까요? 어짜피 set 의 시간복잡도는 O(1) 이어서 괜찮지않나 생각하는데 조언좀 부탁드리겠습니다!!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 반례를 잘 모르겠습니다!
http://boj.kr/01660705b14346a68f903e9c57b3553b처음에 설명하신 String을 접근하는 방법과 cmp를 만드는 것 까지 접근했으나 계속 틀렸다고 나옵니다 ㅠㅠ한번 살펴봐주시면 감사하겠습니다!
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
연결리스트 삭제 시 헤드노드 NULL인 경우 예외처리의 필요성 재고
연결리스트 삭제 시 헤드노드가 NULL인 경우를 고려해야 하는 이유가 궁금합니다. 삭제 전에 삭제할 노드를 미리 찾는 과정이 수반되는데, 그 과정은 헤드노드가 NULL값이 아니라는 것을 전제로 이루어집니다. 따라서 삭제할 노드를 찾아서 삭제를 진행하는 단계까지 왔다는 것은 헤드노드가 NULL이 아니라는 것을 전제로 한다고 볼 수 있습니다. 그럼에도 불구하고 삭제를 진행하는 함수에서 헤드노드가 NULL인 경우를 고려하시고 이에 대한 예외처리 코드를 작성하셨는데, 혹시 그에 대한 이유가 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-h 문제 질문입니다.
https://www.acmicpc.net/source/72188767 sum의 값에 따라 최솟값과 비교하여 최대값이 갱신되도록 짯는데 왜 틀리는걸까요?
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
연결리스트의 삽입과 삭제에서 시간복잡도.
연결리스트에서 값을 삽입하거나 삭제할 때 시간복잡도가 O(1)이라고 하는데 특정 주소의 값을 삭제하거나 특정 값 앞뒤로 새로운 값을 삽입할 때 그 특정 주소를 찾기위해서는 결국 순차탐색을 해서 최악의 경우 O(n)이 되지않나요?예를들어 길이가 n인 연결리스트에서 n//2째에 값을 삭제하거나 삽입하고 싶다고 한다면 n//2 번째의 주소를 가르키고 있는 노드를 찾아야 하니 시간복잡도가 O(n)이 아닌가 라는 의문이 들어서 질문 남깁니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
수강생인데 교재 공유좀 해주세요.
안녕하세요. 저번에 교제 공유 신청했는데 2일째 답변이 없으셔서 빨리 신청한 이메일로 공유좀 부탁드려요
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
내장 함수들의 시간복잡도는 외워둬야하나요?
내장함수마다 제각기 시간복잡도를 가질텐데 자주 쓰이는 함수들은 시간복잡도를 외워두는게 좋을까요? 그래야 시간복잡도를 따지는 문제에서 내장함수를 쓸지 직접 반복문을 쓸지 결정할 수 있을거같아서 질문드려요.
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
중복 제거
위의 코드도 O(n)의 시간복잡도를 가질까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
인접행렬 재귀함수 이렇게 짠 것도 맞는 건가요..?
이중for문도 아니고 뭔가 이상한 것 같은데 출력은 나오고..근데 정확히 뭐가 이상한 건지 잘 모르겠어요..ㅜㅜ맞게 짠 건지 확인 및 조언 부탁드려도 될까요..?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-O 질문입니다!
안녕하세요, 큰돌님17837을 풀던중 문제 예제 입력 5에서 답이 나오지 않습니다.반례를 다 찾았다고 생각했는데, 대체 왜 안되는지 궁금합니다... https://www.acmicpc.net/source/72120636
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 테스트 케이스는 통과하는데 틀렸다고 뜹니다 ㅠ
안녕하세요 선생님,강의 잘 보고 있습니다. http://boj.kr/af15ab332b77463faa58e47e6826ca48선생님께서 설명하신 방법과 비슷한데, 일곱 난쟁이가 아닌 두 명을 잡아내기 위해 아홉개의 입력값의 합 sum에서 일곱 난쟁이 키의 합인 100을 뺀 sum-100 을 sub라는 변수에 담아두었고, 이중for문을 이용해 두 입력값의 합이 sub와 일치하는 두 수를 찾아냈습니다. 배열은 삭제가 안되니 그냥 저 두수를 0으로 처리하고 sort를 통해 오름차순으로 정렬한 다음, 출력할 때 두번째 인덱스부터 출력하도록 코드를 짜봤습니다.(0으로 바뀐 두 수는 맨 앞인 0번째와 1번째에 위치하게 되어 2번째 인덱스부터 출력하도록 하여 출력이 안되는 것을 의도) 야매스러운 방법이긴 하지만.... 그래도 어느 부분에서 예외가 발생했는지 확실히 알고 싶어 이렇게 질문드립니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-n 홀수의 경우가 잘 이해가 되지 않습니다.
if (b % 2) ret = (ret * a) % c;홀수의 경우 a를 한번 더 곱해서 값을 return하게 되면(a^b * a^b * a)^2 % c 하는 경우가 생기는 것 같은데 적상적으로 작동하는 이유가 궁금합니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백엔드 공부용 맥 사양
맥북에어 m1 또는 m2 ...16gb 256ssd백엔드 진로 공부용으로 충분한 사양일까요?? 조언 부탁드리겠습니다 선생님.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
m1 세팅 재질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.말씀해주신 방법대로 했고 bits인지 확인 후 해도 다음과 같이 에러가 발생합니다. 수업자료에 있는 m1 추가 방법으로해도 오류가 발생하네요;;whoami 도 첨부하겠습니다. 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 문제로 연습하는 시간복잡도 Q3 질문 있습니다!
안녕하세요go함수가 2n-1 번 호출된다는 것은 이해했습니다.그런데 main함수에 보면 for문이 하나 더 있는데, 그럼 이 for문 내에서 n번 도는 거니 n + (2n-1) = 3n-1 이 되어야 하는 것 아닌가요?? 사실 빅오표기법에 의하면 둘다 O(n) 이어서 크게 중요하진 않을 수 있으나 혹여나 제가 잘못 이해한 부분이 있다면 바로잡고 싶어 질문드립니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
4챕터 증가수열문제
사소한거긴 한데 while문 조건이 lt<=rt인데만약에 input이 61 3 5 6 4 2이렇게 주어지면 while문이 안 끝나서요.. 차피 judge.exe 돌리면 맞게 나오긴 하는데 이런건 신경 안 쓰고 풀어도 되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 p.46 질문
#include <bits/stdc++.h> using namespace std; int n; int main() { cin >> n; int a[n]; memset(a, 0, sizeof(a)); for(int i : a){ cout << i << " "; } return 0; }여기서 선생님이 에러가 난다고 했는데, 제 컴퓨터 vscode에서는 왜 에러 안뜨고 실행이 잘 되는 이유를 알고싶습니다. 제가 리눅스 터미널에서도 실행시켜 봤는데 에러가 발생하지 않는데, 원인을 잘 모르겠습니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
템플릿 코드에서 if cur_v not in costs: 부분에 의문이 있습니다.
def dijkstra(graph, start, final): # 각 노드들의 비용을 저장 costs = {} # 우선순위 큐 pq = [] # (해당위치까지 가는 총 비용, 노드위치) heapq.heappush(pq, (0, start)) while pq: # heappop을 하면 가장 작은 원소가 튀어 나온다. cur_cost, cur_v = heapq.heappop(pq) # 방문하지 않은 백터 일때만 작동 if cur_v not in costs: # costs[cur_v] = cur_cost for cost, next_v in graph[cur_v]: next_cost = cur_cost + cost heapq.heappush(pq, (next_cost, next_v)) return costs[final]해당 템플릿 코드중에서 if cur_v not in costs: costs[cur_v] = cur_cost어떻게 costs에 cur_v가 없다는 것 만으로 바로 최적의 경로라고 확신할 수 있는지 의문이 있습니다. heapq의 성질덕에 cur_cost, cur_v가 '지금까지 heap에 넣은 값들중에' 가장 작은 값 인거는 알겠는데 다른 경로를 통해 뒤늦게 heap에 들어간 값이 이전에 costs에 not in이여서 넣은 값보다 작은 경우도 있지 않나요??뭔가 제 생각에 자연스럽지 않아서 다른 코드들을 찾아보니 아래와 같이 제가 생각한 조건대로 대소 비교를 해보고 넣더군요.def dijkstra(graph,start,end): costs = {vertex:111111 for vertex in graph} pq = [] heapq.heappush(pq,(0,start)) while pq: cur_cost, cur_v = heapq.heappop(pq) if costs[cur_v] < cur_cost: continue for cost, next_v in graph[cur_v]: next_cost = cur_cost + cost if next_cost < costs[next_v]: costs[next_v] = next_cost heapq.heappush(pq, (next_cost, next_v)) return costs[end] " '지금까지 heap에 넣은 값들중에' 가장 작은 값 " 이 아니라 앞으로 나올 값 중에 가장 작은 근거가 있을까요??- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.