inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

2강 14분쯤 문제 2번 14232번 출력초과...

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

자꾸 출력초과가 나요.. vscode에서 돌려보면 맞는 출력값이 나오는데 왜 백준에서는 출력초과가 나는지 모르겠어요 ... 강의에 있는 코드 참고해서 한건데 왜 안되는지 모르겠어요 ㅠ........ n = int(input()) jewel = [] for i in range(1,int(n**0.5)+1): if i >2 : if n%i == 0: jewel.append(i) jewel.append(n//i) jewel.sort() print(len(jewel)) print(' '.join(map(str,jewel)))

  • python
  • 코딩-테스트
  • 알고리즘
미니 댓글 2 좋아요 1 조회수 546

백주 1456번

미해결

Do it! 알고리즘 코딩테스트 with C++

for (int i = 2; i <= 10000000; i++) { if (num[i] != 0) { long long temp = num[i]; while ((double)num[i] <= (double)B/(double)temp && (double)num[i] >= (double)A / (double)temp) { count++; temp = temp * num[i]; } } } 풀이와 다르게 while 문에서 min값까지 판단하게되면 왜 답이 달라지는건지 모르겠습니다. 어떤 값을 count 못하게 되는건지 모르겠습니다

  • c++
  • 코딩-테스트
  • 알고리즘
winwincs 댓글 1 좋아요 0 조회수 224

백준 1325, 교재 47번 문제 질문입니다.

해결됨

Do it! 알고리즘 코딩테스트 with C++

교재에서는 bfs로 구현했는데 저는 dfs로 구현해봤습니다. 그랬더니 시간초과가 발생했네요. 제가 작성한 코드가 올바른답이긴하지만 시간초과가 발생하는건지, 아니면 그냥 틀린건지 궁금합니다. 또한 올바른답 이맞다면 왜 시간초과가 발생하는지(시간복잡도 차이가 왜 크게 나는지)도 궁금합니다. #include <iostream> #include <vector> #include <queue> using namespace std; int maxdepth=-1; vector<vector<int>> a; vector<bool> visited; void dfs(int k, int depth); int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,m; cin >> n >> m; a.resize(n + 1); visited = vector<bool>(n + 1, false); for (int i = 0; i < m; i++) { int s,e; cin >> s >> e; a[e].push_back(s); } vector<int> result(n + 1, 0); for (int i = 1; i <= n; i++) { dfs(i, 0); result[i] = maxdepth; maxdepth = -1; fill(visited.begin(), visited.end(), false); } int realmax = -1; for (int i = 1; i <= n; i++) { if (result[i] > realmax)realmax = result[i]; } for (int i = 1; i <= n; i++) { if (realmax==result[i])cout<<i<<' '; } } void dfs(int k, int depth) { if (maxdepth < depth)maxdepth = depth; visited[k] = true; for (int i : a[k]) { if (!visited[i]) { dfs(i, depth + 1); } } visited[k] = false; }

  • c++
  • 코딩-테스트
  • 알고리즘
ㅁㄴㅇㄹㅋㅌㅍ 댓글 1 좋아요 0 조회수 380

LCA 문제 관련해서 질문이 있습니당

해결됨

코딩테스트 [ ALL IN ONE ]

꼭 visited 배열에 값을 넣거나 혹은 값을 print 하는 것이 아니고 이번 LCA 문제처럼 값을 return 해주는 것도 트리를 순회하다가 방문 처리를 했다고 이해해도 될까요?

  • python
  • 코딩-테스트
  • 알고리즘
비가싫어요 댓글 2 좋아요 1 조회수 256

배열 출력

미해결

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

만약 int []A = { 1, 3, 9, 4 } 가 있을때, A={ 1, 3, 9 ,4 } 를 출력하고 싶으면 어떻게 해야 출력할 수 있나요? 혹은 for 중첩문의 반복 조건을 통해 선택정렬을 해서 ( 1, 9) 와 ( 3, 4 ) 에 해당하는 것만 출력하고 싶을때는 어떻게 해야 출력할 수 있나요? 그리고 그건 어디에서 배울 수 있나요?

  • 알고리즘
ghuhan18 댓글 1 좋아요 0 조회수 202

질문

미해결

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

수업들어보니 자바스크립트의 let 이 자바의 int 같은데, 만약 int min = i ; 선언하고 아래 if ( arr[j] < arr[min]) { min = j ; } 라고 하셨는데, 그러면 변수 min 에는 j 값이 저장 되기는 하지만 int 는 지역 변수라 if 문 안에서 저장된 int min 의 값이 if 문 밖으로 나가서는 for 문을 실행하여 다시 j 가 하나 더해져서 반복 실행 되었을때 min 의 값은 다시 i 로 초기화 되는건가요? 아니면 j 로 바뀐건가요 ? -제가 아는 지역 변수에 대한 설명입니다 지역 변수는 선언된 함수나 메소드 내에서만 접근이 가능하고, 해당 함수나 메소드의 실행이 끝나면 그 범위를 벗어나서 접근할 수 없습니다.

  • 알고리즘
ghuhan18 댓글 2 좋아요 1 조회수 302

질문

미해결

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

안녕하세요. 덕분에 삽입정렬 마스터했습니다. 또한 다른 쪽 우선 공부해보고 싶은 곳이 있는데, 만약 A=(1, 11, -2, 12, 8, 9)이고 x=10이라면, 알고리즘은 (1, 9) 또는 (-2, 12) 같은 쌍을 찾아내야 할때를 공부하고 싶은데, 어떤 부분을 공부하면 될까요? 기본인지 심화에 있는지도 말씀해주시면 감사드리겠습니다.

  • 알고리즘
ghuhan18 댓글 2 좋아요 2 조회수 306

postorder 문제 문의드립니다!

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요! 현재 postorder 트리 문제 풀었는데요! 선생님이 공유해주신 코드가 class Solution(object): def lowestCommonAncestor(self, root, p, q): if root == None: return None left = self.lowestCommonAncestor(root.left, p, q) right = self.lowestCommonAncestor(root.right, p, q) if root == p or root == q: return root elif left and right: return root return left or right 이렇게 인데 class에 대해서 잘 몰라서 그런지 이후로 어떻게 해야 답이 나오는지 모르겠습니다ㅜㅜ result = Solution([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 6, 4) 이렇게 했는데 에러가 나는데 어떻게 해야할까요? ++ 선생님 파이썬 전자책으로 공부하고 했는데, 제가 잘 못찾아서 그런지 그때 클래스에 대해서 보지 못한것 같은데 설명해주셨으면 좋겠어요 🙏 🙏

  • python
  • 코딩-테스트
  • 알고리즘
dbskqnsghd 댓글 2 좋아요 1 조회수 176

질문

미해결

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

혹시 이 강의에서 binary search 에 대해서도 가르쳐주시나요 ?

  • 알고리즘
ghuhan18 댓글 1 좋아요 0 조회수 253

자바

미해결

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

안녕하세요. 저는 지금 자바로 공부하고 있는 학생인데, 이 강의는 자바스크립트를 기준으로 공부가 진행되더라구요. 자바를 공부하는 사람이 이 강의를 봐도 괜찮나요? 아니면 실현하는 코드가 완전히 다른가요?

  • 알고리즘
ghuhan18 댓글 1 좋아요 1 조회수 260

연결리스트 삭제 시 헤드노드 NULL인 경우 예외처리의 필요성 재고

해결됨

독하게 C를 배운 사람을 위한 선형 자료구조

연결리스트 삭제 시 헤드노드가 NULL인 경우를 고려해야 하는 이유가 궁금합니다. 삭제 전에 삭제할 노드를 미리 찾는 과정이 수반되는데, 그 과정은 헤드노드가 NULL값이 아니라는 것을 전제로 이루어집니다. 따라서 삭제할 노드를 찾아서 삭제를 진행하는 단계까지 왔다는 것은 헤드노드가 NULL이 아니라는 것을 전제로 한다고 볼 수 있습니다. 그럼에도 불구하고 삭제를 진행하는 함수에서 헤드노드가 NULL인 경우를 고려하시고 이에 대한 예외처리 코드를 작성하셨는데, 혹시 그에 대한 이유가 있을까요?

  • c
  • 코딩-테스트
  • 알고리즘
  • vc++
TMI_JUNG 댓글 2 좋아요 0 조회수 450

수강생인데 교재 공유좀 해주세요.

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요. 저번에 교제 공유 신청했는데 2일째 답변이 없으셔서 빨리 신청한 이메일로 공유좀 부탁드려요

  • python
  • 코딩-테스트
  • 알고리즘
김성윤 댓글 1 좋아요 1 조회수 383

움직이는 물체에 대한 쿼드, KD트리 효율 질문

미해결

이득우의 꼭 배워야하는 게임 알고리즘

강의 잘들었습니다 😊 😊 강의를 들으면서 한가지 의문이 생겼는데요 쿼드트리나 KD트리를 이용하면 다수의 물체에 대한 충돌체크에 쓰이면 좋을거 같다는 생각을 했습니다. 강의에서는 고정된 물체에 대해서 트리를 구축하고 질의(Query)를 실행하는데요 만약 물체가 움직이게 된다면 위치값이 계속바뀌닌까 이 알고리즘을 사용할수 없을수도 있을거 같았습니다. 움직일때마다 트리를 재구축 해줘야하닌까 더 비효율적이지 않을까요?? 움직이는 다수의 물체에 대해 충돌체크를 하려면 쿼드트리를 사용하고 물체가 이동할때마다 트리 노드가 들고있는 물체 목록을 옮겨 다니는 로직을 만들어야 할까요?

  • unity
  • 알고리즘
k ch 댓글 1 좋아요 0 조회수 512

템플릿 코드에서 if cur_v not in costs: 부분에 의문이 있습니다.

해결됨

코딩테스트 [ ALL IN ONE ]

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 문의하기를 이용해주세요.

  • python
  • 코딩-테스트
  • 알고리즘
  • 다익스트라
김민수 댓글 2 좋아요 1 조회수 340

2강 약수 문제 질문

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

1번 질문: 2번 문제와 백준의 14232번이 어떻게 같은 문제인지 이해가 가지 않습니다. 다음은 강의 자료입니다: 문제 2. 약수 빠르게 구하기 ( #1978, #11653, #14232 ) 숫자 N이 주어진다. 이 숫자의 약수가 총 몇 개가 포함되어 있는지 계산하고 싶다. 약수의 개수와, 약수들을 모두 출력하는 프로그램을 작성하시오. 15 2 3 5 입력값과 출력값을 보면 백준 14232번을 가져오신 것 같은데 약수를 출력하는 문제가 해당 백준의 문제와 어떻게 같은 출력값이 나오는지 이해가 가지 않습니다. 14232번은 다음과 같습니다: 희대의 도둑 효빈이는 세계 최고의 보석가게 영선상에 잠입할 계획이다. 이 영선상은 최고의 보석가게답게 최고의 보안장치를 두고 있는데, 이 보안장치를 해제하지 않는다면 보석을 여러 개 훔쳐갈 시, 보석끼리 달라붙으며 무게가 모든 보석들의 곱으로 늘어난다. 효빈이는 이 보안장치를 해제할 수 없기 때문에, 차라리 곱해진 대로 최대한 많은 보석들을 가져오기로 계획했다. 효빈이는 한번에 k라는 무게를 들 수 있으므로, 딱 k만큼의 무게만큼의 보석을 가져오고 싶은데, 그 때 보석들의 최대 개수를 알고싶다. 영선상에는 세계 최고의 보석가게답게 모든 무게의 보석들이 매우 많이때문에, 훔쳐가는 보석이 부족할 일은 없다. 다만 모든 보석들은 무게가 1보다 크다. 효빈이는 이제 영선상에 잡입할 계획을 다 세웠다. 하지만 무슨 보석들을 훔쳐올지 결정하지 못하였는데, 효빈이를 대신하여 훔쳐올 보석들을 결정해주자. 제가 생각하기로는 한번에 또한 강의자료에 있는 2번 문제의 정답이 해당 문제에 해당하지 않는 것 같은데 이 코드는 어디에 해당하는 코드인지 궁금합니다. 감사합니다

  • python
  • 코딩-테스트
  • 알고리즘
Emilie 댓글 2 좋아요 1 조회수 238

혹시 다른 ide에서 잘 돌아가는 프로그램이

미해결

Do it! 알고리즘 코딩테스트 with JAVA

백준에서는 안 돌아갈수도 있나요? 다른 ide에서는 잘 돌아가는데 백준에 제출하니까 계속 틀렸다고 하네요!

  • java
  • 코딩-테스트
  • 알고리즘
자바칩 댓글 1 좋아요 0 조회수 379

내림차순으로 정렬하기 강의에서..

미해결

Do it! 알고리즘 코딩테스트 with JAVA

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int A[] = new int[str.length()]; for(int i=0; i<str.length(); i++){ A[i] = Integer.parseInt(str.substring(i, i+1)); } for(int i=0; i<str.length(); i++){ int Max = i; for(int j = i+1; j<str.length(); j++); { if(A[j]>A[Max]) { Max = j; } } if (A[i] < A[Max]){ int temp = A[i]; A[i] = A[Max]; A[Max] = temp; } } for (int i=0; i<str.length(); i++){ System.out.println(A[i]); } } } 안녕하세요 강의 잘 보고 있어요. 강사님이 치라는 대로 코드를 따라 쳤는데 계속 오류가 뜨네요?? (굵게 표시한 부분) cannot find symbol 오류인데.. 분명 j와 max를 잘 정의해 주었는데 왜 이러는 걸까요?

  • java
  • 코딩-테스트
  • 알고리즘
자바칩 댓글 1 좋아요 0 조회수 301

강의자료 공유 요청 드립니다!

해결됨

코딩테스트 [ ALL IN ONE ]

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강사님 강의 너무 잘 보고 있습니다. 교재 공유 요청 드립니다!

  • python
  • 코딩-테스트
  • 알고리즘
박송은 댓글 1 좋아요 1 조회수 212

과제형 코딩테스트 비율은 얼마나되나요?

해결됨

코딩테스트 [ ALL IN ONE ]

알고리즘 코테 말고 과제형식으로 진행이 되는것은 비율이 얼마나 되는지 알려주실 수 있나요? 대략 느낌상 이렇다 정도만 얘기해주셔도 괜찮습니다

  • python
  • 코딩-테스트
  • 알고리즘
이지훈 댓글 1 좋아요 1 조회수 359

인기 태그

인프런 TOP Writers

주간 인기글