묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
Deque에서 Queue인지 Stack인지는 데이터를 추가 할 때 결정되는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예제를 따라하면서 호기심에deque.push(1); deque.push(2); deque.push(3); System.out.println("deque.pop() = " + deque.poll()); System.out.println("deque.pop() = " + deque.poll()); System.out.println("deque.pop() = " + deque.poll());pop을 -> poll로 바꿔봤는데 결과값이 똑같이 나오고그 반대로 offer / pop 으로 해도 마찬가지더라구요!Deque<Integer> deque = new ArrayDeque<>();혹시 이 Deque가 queue / stack 둘 다 지원하기 때문에데이터를 추가 할 때 자료구조가 결정되는게 맞는건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
조합을 이용한 풀이
안녕하세요 선생님 조합을 이용해서 문제 풀이를 시도했는데, 순열 [1,3,9]를 이용 http://boj.kr/2411bc89bcd94ac3baab79fed027f981 순열[-9,-3,-1]을 이용http://boj.kr/8a0f5a03890c4b1cb210f3ef378f238e 각각 시도를 했는데 1번의 경우는 실패하고 2번의 경우는 성공을 하는데 이유를 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-C 질문
안녕하세요 선생님주차 시간의 범위가 1~100인데배열의 크기를 104로 잡는 이유가 궁금합니다.강의 잘 듣고 있습니다.감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
bits/stdc++.h 파일을 추가하고 실행을 하려고 하는데 cin, cout 등 기본 함수에 에러가 발생합니다,
stdc++.h를 추가하기 위해서 gcc --version를 통해 경로를 확인하고 해당 경로로 가서 include폴더 안에 bits폴더를 생성해서 stdc++.h파일을 추가하고a.cpp파일을 만들어서 실행을 했는데 가장 기본 함수인 cin, cout그리고 string자체가 에러가 납니다,,,환경은 맥 m2 프로이고 vscode로 실행했습니다추가) #include <iostream>으로 변경했더니 됩니다ㅠㅠ 뭐가 문제일까요?추가22) 해결했습니다!! iostream은 되길래 iostream파일 경로로 가서 확인했더니 /Applications/Xcode.app/contents/Developer/~이 경로가 아니고 다른 경로였고 해당 경로에 있던 bits폴더의 stdc++.h에 넣어놨던 내용들이 다 초기화되서 아무것도 없더라구요,,, 그래서 다시 넣어줬더니 잘 실행이됩니다!!찾아보니까 xcode를 업데이트 하면서 내용들이 날아간것 같더라구욥! 혹시 다른 분들께 도움이 될 수도 있어 해결방법까지 남겨놓겠습니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-d 불 메모리 초과 때문에 질문드립니다!
안녕하세요 큰돌님, 언제나 좋은 강의 감사드립니다.http://boj.kr/3ec7adf276a74ad89e779cb5b1839dbd3-d 불 문제를 풀고있는데 계속해서 메모리 초과가 발생해서요.혹시 몰라 큰돌님 예제 소스 확인했는데 로직상 거의 유사한것같은데 계속해서 메모리 초과가 발생하고 있습니다.검토 한 번 부탁드려도 될까요?다시 한번 좋은 강의 감사드립니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
메모리 초과와 시간초과
http://boj.kr/12b19d28de834ea8904e1304c639f49e안녕하세요 선생님. 해당 코드는 메모리 초과가 나오는데 어느 부분때문에 메모리 초과가 나오는지 이해가 되지 않아서 여쭤봅니다. 또한 제가 처음 이 문제를 보고 어떻게 풀지 감은 잡았는데 그때 제 생각은 bfs가 한 level씩 진행되면 6의 제곱으로 경우의 수가 늘어날텐데 그런 경우에는 60 60 60이 인풋으로 들어왔을때 시간초과가 날 수도 있다고 생각했습니다. 처음 이 문제를 읽고 bfs로 풀 생각을 했을때 시간초과가 나지 않는다는 확신은 무엇인가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 분할정복 질문
http://boj.kr/9836321748734ee289405c3434a83f5c아래 질문 하신분들 코드를 보다가 정리를 해보니이방법이 외우기 쉬운것 같은데요.일반적인 DFS, BFS 에서는 오버플로우 체크(방문여부 등등..)를 하는 코드가 있는데요. 위 코드로 할 경우에는 오버플로우 또는 반례를 생각하지 않아도 되는걸까요?
-
미해결김영한의 실전 자바 - 중급 2편
참조형 return 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) y2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) y3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) y[질문 내용] MyLinkedListV2 클래스의 remove 함수에서Object removedItem = removeNode.item; ... removeNode.item = null; return removedItem;위와 같은 방식으로 item을 반환하기 전에 null로 초기화를 해주고 있습니다. removedItem에 참조형인 removeNode.item을 할당하면 참조값이 복사되어 값이 null인 참조값을 반환할 것이라고 생각했는데, 실제 코드를 실행시켜보니 삭제된 노드의 item 값이 정상적으로 반환되는 것을 확인했습니다. Object removedItem = removeNode.item을 실행하면 참조값이 아니라 데이터가 들어가게 되는 건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-L 이 문제에서 dp 배열의 정의는 무엇인가요?
큰돌님 안녕하세요?7-L 안녕 문제 질문 드립니다. 해당 dp 배열 정의를 모르겠어서 질문 드리게 되었는데요,마지막 dp[100]으로 print를 해주셨는데,dp[100]은 체력이 100일 때처럼 보이는데 당연히 이건 아닌거 같아서요.dp의 각 배열이 가르키는게 무엇인지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [필수개념] 순열 : 재귀함수로 만드는 순열 라는 강의에 makePermutation 이라는 함수를 구현해주셨는데 해당 내용에 대해서 궁금한 점이 있어 문의드립니다. void makePermutation(int n, int r, int depth) { // cout << n << " : " << r << " : " << depth << '\n'; if (r == depth) { printV(v); return; } for (int i = depth; i < n; i++) { swap(v[i], v[depth]); makePermutation(n, r, depth + 1); swap(v[i], v[depth]); } return; }코드에서 현재 r은 역할이 없는 것 같은데 어떤 부분에서 필요한걸까요?제가 수업에서 놓친 부분이 있을까요?감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C memset과 fill 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요! 강의 잘 듣고 있습니다 ㅎㅎ다름이 아니라, 게리멘더링 문제에서 comp와 visited를 memset으로 초기화하고 제출했더니 버퍼오버플로우로 런타임에러가 나더라구요,, 0으로 초기화하는 경우에는 memset 쓸 수 있는 걸로 알고 있고, 심지어 0으로 초기화할 때는 memset이 fill보다 빠르지 않나요?ㅠㅠ 그런데 버퍼오버플로우 나는 이유가 궁금합니다!답변 미리 감사드려요!!! 항상 이른 아침에 답변해주시던데 좋은 하루 보내세요~~
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 질문있습니다!
안녕하세요 선생님 :) 문제풀이 중 이해가 안가는 부분이 하나있어서 질문드립니다.선생님의 문제풀이 중 아래와 같은 부분이 있는데요,if(i >= 1 && (prev == idx) && (idx != 'e' && idx != 'o')){ flag = 1; i >= 1이라는 조건을 넣어주신 이유를 잘 모르겠습니다. 실제로 저 부분을 지워도 정답으로 인정이 되더라구요. 알려주시면 감사하겠습니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-D 질문 있습니다
http://boj.kr/e94fb8e43b714794a0950505c0091594 아래의 dfs 함수에서 a[ny][nx] == 1일때 왜 continue 하는 것 인가요?int dfs(int y, int x){ visited[y][x] = 1; int ret = 1; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || nx < 0 || ny >= m || nx >= n || visited[ny][nx] == 1) { continue; } if (a[ny][nx] == 1) { continue; } ret += dfs(ny, nx); } return ret; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
그리디로 풀린다는 판단히 명확하게 서지 않습니다.
31883번: FA수의 진 (acmicpc.net)백준의 31883 문제를 DP로 풀면 깔끔하게 풀릴 수 있다고 생각해서 DP로 풀었습니다. 하지만 풀고나서 문제 카테고리가 그리디로 있는 걸 확인하고 그리디로 풀으니 더 코드가 깔끔하게 풀리는 경험을 했습니다. 그리디로 풀린다는 판단은 이 문제에서 어떻게 생각해야 되는 걸까요? 그리고 그리디 문제다 하는 판단 근거 유추를 어떻게 해야 하는지 강의에 있는 내용 외로 보충 설명 해주시면 감사하겠습니다. 아래는 DP로 풀은 코드 입니다.import sys input = sys.stdin.readline N = int(input()) times = [list(map(int, input().split())) for _ in range(N)] memo = [[0] * 2 for _ in range(N)] memo[0][0] = times[0][0] memo[0][1] = times[0][1] for i in range(1, N): t1 = memo[i-1][0] tmp = t1 % (times[i][2] + times[i][3]) if tmp >= times[i][2]: t1 += times[i][2] + times[i][3] - tmp t1 += times[i][0] t2 = memo[i-1][1] tmp = t2 % (times[i][2] + times[i][3]) if tmp >= times[i][2]: t2 += times[i][2] + times[i][3] - tmp t2 += times[i][0] cross1 = min(t1, t2) t3 = times[i][1] + memo[i-1][0] t4 = times[i][1] + memo[i-1][1] cross2 = min(t3, t4) memo[i][0] = cross1 memo[i][1] = cross2 print(min(memo[N-1]))
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 메서드 사용 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제네릭을 사용할 때 궁금한 점이 생겨서 질문드립니다.Integer i = 10;Object object = GenericMethod.objMethod(i);// 타입 인자(Type Argument) 명시적 전달System.out.println("명시적 타입 인자 전달");Integer result = GenericMethod.<Integer>genericMethod(i); 현재는 Integer i = 10;으로 래퍼클래스를 사용하고 있는데,만약 int i = 10;과 같이 기본형을 전달하면 '오토 박싱'이 되어서 Integer객체로 변환되어서 메서드에 전달되는 걸로 이해하면 될까요?
-
해결됨김영한의 실전 자바 - 중급 2편
자바가 제공하는 Set 질문
안녕하세요 항상 최고의 강의를 제공해주셔서 감사드립니다.강의를 듣던 도중 질문이 생겨 글을 남깁니다. 섹션 8번 컬렉션 프레임워크 강의의 자바가 제공하는 Set은 출력 하였을 경우영한님과 함께 만들었던 MyHashSet과 달리 비어있는 인덱스는 출력이 되지 않던데 이 또한 최적화로인해 출력이 안되는 것인지 궁금합니다. 만약 그렇다고 하면 initialCapacity의 값을 입력하거나, 데이터의 양을 배열의 크기의 75% 이상으로 늘렸을 경우 rehashing 되는지 육안으로 확인할 방법이 없는지 또한 궁금합니다.(rehashing 후 커진 배열에 다시 맞추어 데이터의 순서가 변경되는 것은 확인하였는데 단순히 배열의 크기가 커진 것을 확인할 방법이 궁금합니다.)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dfs 참조 관련 질문이 있습니다.
http://boj.kr/00157dd8760445ee824ec29f0029de12안녕하세요 선생님 좋은 강의 감사합니다. dfs함수에 매개변수로 v를 참조를 명시하는 이유가 궁금합니다. 저는 매개변수에 v를 넘기지 않고 풀었는데 (v를 전역변수로 설정해서) 답안지에는 v가 매개 변수로 넘어가서 궁금합니다. 감사합니다.
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
정수론 최적화 #1407문제 질문있습니다
1 2 3 4 5 6 7 8 2**0 o o o o o o o o -> 8개 (8 // 1) 2**1 o o o o -> 4개 (8 // 2) 2**2 o o -> 2개 (8 // 4) 2**3 o -> 1개 (8 // 8)강의에서 위의 내용까지는 이해를 했습니다.(8!에 2가 몇 번 곱해져있을까? 를 구하는 방법이라고 이해하고 있습니다) 강의하시는 중(24:30초 즈음부터)에 아래의 빨간 네모부분의 계산을 왜 하시는건지 이해가 잘 안됩니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-O 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 두번째 말씀해주신 방법에서 분기점이라는 개념이 이해가 잘 안되서 질문 남깁니다. ((()))()과 같은 예시가 설명과 동일하게 존재할 때ret = max(ret, i - s.top());을 수행하면마지막 7번째 i에선 7-5를 수행하게 되어서 ret에 6이 들어가서 오답이 되는것이 아닌가라는 의문이 있습니다. 제가 잘 이해를 못한 부분이 존재하는 것 같아서 질문남깁니다. 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - S visited 사용 질문입니다
안녕하세요 선생님 수업 잘 듣고 있습니다.제가 어떠한 grid를 인풋으로 받아 dfs 혹은 bfs를 할때 visited를 사용하는 이유는 이해를 하고있습니다. 그런데 이번 문제의 경우 어느 상황에서 visited가 사용되는지 이해가 되지 않습니다. 제 생각에는 한번 들어간 노드에는 그에 따른 하위 노드로 넘어갈뿐 똑같은 노드에 들어가는 상황이 없다고 생각됩니다. 어떠한 상황에서 visited가 사용되는지 궁금합니다. 감사합니다