- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 윈도우에서 visual studio code로 c++ 환경을 셋팅하려고 하는데, 계속 똑같은 오류가 발생합니다. MSYS2 통해서 MinGW-w64 toolchain 다운로드 받고 환경변수까지 다 설정했습니다. https://code.visualstudio.com/docs/cpp/config-mingw#_prerequisites .cpp 파일 만들어서 g++ -std=c++14 -Wall a.cpp -o a.out 명령어를 치면 C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in function `main': C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:67:(.text.startup+0xc5): undefined reference to `WinMain' collect2.exe: error: ld returned 1 exit status 해당 에러가 발생합니다. 이걸 어떻게 해결해야 할지 모르겠습니다. (c/c++ configuration ui 설정까지 다 했습니다.) 이를 해결할 방법이나 윈도우에서 visual studio code에서 c++ 환경을 셋팅하는 방법을 알려주시면 감사하겠습니다.
http://boj.kr/d23d4530da1942ca8560de75051ec4a0 안녕하십니까 선생님, 항상 강의 잘 듣고 있습니다. 매번 상세한 답변 감사합니다. 4 - A 문제에서 어느 부분에서 틀렸는지 잘 모르겠습니다. 그리고 문제의 출력 조건에서 재료의 번호를 "사전 순으로 가장 빠른 것을 출력한다." 이 부분이 제 풀이에서는 어차피 1번 재료부터 쌓아 갔으니 고려하지 않아도 되는 부분인가요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. F번 질문드립니다! 사과위치가 바구니 사이에 있지 않는 경우, 바구니 길이만큼 모두 탐색해서 최솟값을 찾아야 한다고 생각했습니다. 현재 바구니 위치가 다음번,다다음번 사과 거리에 영향을 미치기 때문에 단순히 왼쪽,오른쪽 경계값으로 단정지으면 안된다고 생각했는데, 제 생각이 왜 틀린건가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 펜윅트리 개념강의 6분 37초 부근 설명 질문입니다. {3,4,10,11}에서 3,4,10은 다 인덱스+1을 해서 해당 번호의 노드의 값을 구할떄 더했는데, 갑자기 마지막 11은 이진수로 변환하면 100(4)인데, +1을 하지않고 4번쨰 요소에다 그냥 더하라고 설명하셨는데, 노드 번호가 (idx를 이진수로 변환한 값)+1인 노드에 더하는게 알맞은 규칙 아닌가요? 갑자기 , +1을 하지않고 4번쨰 요소에다 그냥 더하라고 설명하신 부분이 이해가 되지 않습니다.
강의 메인 함수에서 int main() { NewTime temp1; NewTime temp2(3, 30, 2); temp2.print(); return 0; } 로 작동을 하고 temp1(); 로 선언하면 아래 에러가 나옵니다. note: remove parentheses to default-initialize a variable 22 | NewTime temp1();
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
안녕하세요. 부모클래스의 함수를 override 하기 위한 목적으로 부모클래스 함수에 virtual 키워드를 붙여주고 자식클래스가 이 함수구현을 강제하기 위해 virtual 키워드를 사용하는 것으로 이해 했습니다. 하나 이해가 되지 않는 부분은, 소멸자에 virtual 키워드를 붙여주었을때, 부모클래스의 소멸자와 자식클래스의 소멸자가 이름이 다름에도 자식클래스 소멸자를 호출해준다는 것인데, 해당 내용을 Perplexity에 질문해보니 C++ 내부적으로 소멸자를 동일한 이름으로 취급하기 때문이라는 답변을 얻었습니다. 이 내용이 맞는건지 답변 부탁드립니다. 감사합니다.
안녕하세요! 저는 강사님과 전체적으로 유사하지만, 오름차순 정렬하는 부분을 다른 로직으로 작성했습니다. 그러나 해당 로직으로는 백준 채점에서 자꾸 99%에서 틀렸습니다가 나오는데 이유를 도저히 모르겠어서 질문 드립니다. (참고로 강사님이 하신 방식과 비슷하게 문자열을 배열에 보관하고 한번에 정렬하여 인덱스 0번의 문자열을 출력하는 방식으로 수정했더니 통과했습니다.) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int n, mp, mf, ms, mv, cost, result; static int[] pArr; static int[] fArr; static int[] sArr; static int[] vArr; static int[] cArr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine()); pArr = new int[n + 4]; fArr = new int[n + 4]; sArr = new int[n + 4]; vArr = new int[n + 4]; cArr = new int[n + 4]; StringTokenizer st = new StringTokenizer(br.readLine()); mp = Integer.parseInt(st.nextToken()); mf = Integer.parseInt(st.nextToken()); ms = Integer.parseInt(st.nextToken()); mv = Integer.parseInt(st.nextToken()); for (int i = 0; i < n; i++) { st = new StringTokenizer(br.readLine()); pArr[i] = Integer.parseInt(st.nextToken()); fArr[i] = Integer.parseInt(st.nextToken()); sArr[i] = Integer.parseInt(st.nextToken()); vArr[i] = Integer.parseInt(st.nextToken()); cArr[i] = Integer.parseInt(st.nextToken()); } cost = 15000; result = -1; for (int i = 1; i < (1 << n); i++) { solve(i); } StringBuilder sb = new StringBuilder(); if (result == -1) { sb.append(result).append('\n'); } else { sb.append(cost).append('\n'); for (int i = 0; i < n; i++) { if ((result & (1 << i)) != 0) { sb.append(i + 1).append(' '); } } } System.out.println(sb); } static void solve(int num) { int p = 0; int f = 0; int s = 0; int v = 0; int c = 0; for (int i = 0; i < n; i++) { if ((num & (1 << i)) != 0) { p += pArr[i]; f += fArr[i]; s += sArr[i]; v += vArr[i]; c += cArr[i]; } } if (p < mp || f < mf || s < ms || v < mv) return; if (cost > c) { // 더 적은 비용이면 비용과 result 갱신하기 cost = c; result = num; } else if (cost == c) { // 비용이 같으면 더 빠른 result로 갱신하기 for (int i = 0; i < n; i++) { if ((result & (1 << i)) != (num & (1 << i))) { // i번째 인덱스에 비트가 다르면 if ((num & (1 << i)) != 0) { // num이 켜져있으면 사전 순으로 더 빠름 result = num; } break; } } } } }
안녕하세요 큰돌님 강의 잘 보고 있습니다. 혼자 문제를 풀때 dfs와 dp를 섞어서 다음과 같이 풀었습니다. http://boj.kr/1502bc54c9eb4d5ea406fd47713ab8e5 dp를 섞어 각 노드당 한번씩만 방문하게 하여 입력, 로직 수행, 출력 모두 합쳐도 최대 O(2n+m)이라는 생각이 드는데 시간 초과가 나옵니다. 혹시 제가 놓치고 있는 부분이 있을까요?
8분 20초 부터 GameFeatureSubsystem를 상속받아 사용하지 말고 UDefaultGameFeaturesProjectPolicies 이 클래스를 상속받아 사용하라는 얘기를 하시는데 게임의 규칙들을 GameFeatureSubsystem을 상속 받아 사용하는 방식이랑 어떤 차이가 있는 건가요? Observer패턴을 쓰는 걸 보면 게임의 규칙들을 컴포넌트처럼 만들어서 사용하는 것 같긴 한데 어떤 구조로 돌아가는지 정확히 이해를 못하겠어요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 선생님 저는 이중백터를 사용해서 풀었습니다. 답은 나오는데 막상 메모리 초과로 틀렸습니다.. http://boj.kr/0453666f021a433eb15ce10222c70c48 제가 백준 문제를 풀면서 처음으로 메모리 초과라는 오류가 떴습니다.. 그 동안 시간복잡도만 생각했지만, 메모리도 오류가 안 나게 다루는 방법이 있을까요?