안녕하세요 큰돌님! 강의 잘 보고 있습니다! 3-L 문제를 혼자 해내려고 했다가 문제가 생겨서 이렇게 질문글을 드립니다. https://www.acmicpc.net/submit/1987/56715364 int 형의 dfs함수, go()를 짜보려고 노력했습니다. 그런데 테스트 케이스에 대한 예제 결과는 잘 나오지만, 자꾸 문제 제출 결과는 틀렸다고 나옵니다. 어디서 잘 못 꼬인 것인지 로직 오류 같은데, 제 머리로는 이해가 되지 않아서 이렇게 피드백 부탁드립니다..! <참고> ret으로 노드마다 방문하였을 때 1씩 쌓이도록 ret+=go(ny, nx)했구요. continue 조건으로 alpha에서 겹치는 노드는 아예 배제하도록 하여서 한방에 찾고 싶었습니다..
안녕하세요 강사님! 일곱난쟁이문제를 순열로 풀 때 순열의 방법으로 do-while permutation와 재귀함수가 있습니다. 이 중, 일곱난쟁이문제를 순열의 재귀함수를 통해서 푸는 방법으로 풀고 싶어서 풀다가 어느 코드의 구현이 잘못 된지를 몰라서 질문 드립니다. http://boj.kr/ad5d9ed01b4c433cadf0e458aad20a09
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요. rookiss 강사님. c++ part1 파일분할관리 단원설명과 관련하여 실제 실습시 환경설정문제로 실행이 제대로 안되는 문제를 해결하고자 질문을 올리게 되었습니다. c++ 파트1 파일 분할관리 단원에서 test1.cpp, test.h, cpp_study.cpp로 파일을 분할해서 실제 실행해보는 과정에서 다음의 문제점을 발견할 수 있었습니다. hello world가 안뜨는 문제점을 발견하여, 이 문제점이 무엇인지 일단 파악하고자 break point를 걸어서 디버깅을 해보았습니다. 특이한건 f11로 void Test_2()함수를 타고 가보고자 시도를 하였으나 무슨 이유인지는 모르지만 컴파일러가 void Test_2()를 지나가고 바로 return 0;으로 가는 것을 확인할 수 있었습니다. 이게 왜 그런지 모르다보니 구글에서 해당 사례가 있는지를 검색하였으나 검색을 해도 저와 비슷한 사례가 나오지 않다보니, 다시 강사님의 강의를 보던 도중 한가지를 확인할 수 있었습니다. 왠지 지금 네모로 체크한 설정여부 유무가 문제가 아닐까 조심스럽게 추측해보았습니다. 이 설정은 어떻게 할 수 있는지 문의드립니다. 혹시라도 비슷한 사례를 경험하신 분들이 계시면 답변을 부탁드리고자 합니다.
안녕하세요 강사님! 일곱난쟁이 문제에 대해 질문 드립니다! http://boj.kr/90d2372449b74e20b4ad80e1e110ba89 제가 구현한 코드입니다. 강사님의 코드는 sum선언을 int sum = 0;으로 do while구문 안에 초기화를 하셨는데 저처럼 3행에 sum을 전역변수로 하여서 선언하면 안되는 것인가요? 그리고, sum을 전역변수로 선언이 가능하다면 int sum;이 아닌 int sum = 0;으로 초기화까지 해야하나요?
안녕하세요 1주차 강의를 듣고 있는 학생입니다. 지금 알고리즘 문제 풀이를 할 때, 먼저 문제를 생각해보고 문제를 맞춘 다음 강의를 보고 더 알아가고 수정하면서 공부하고 있습니다. 처음부터 문제를 봤을 때 도대체 어떤 방식으로 문제를 풀어야 할 지 모를 경우 ( 분류를 봐도 모르는 경우 ) 강의를 먼저 보고 나서 문제를 풀어보는 방식으로 진행 하는게 맞는 방향일까요? 그렇게 풀이한 문제가 머리에 잘 남지 않는 경우가 많았어서 고민입니다...
교안에 보면 g++ -std=c++14 -Wall a.cpp -o test.out -> 컴파일 ./test.out -> 컴파일 된 소스 실행 이 두 명령어를 터미널에 입력 후 코드를 실행하라고 나와있는데 그럼 매번 코드를 변경하거나 새로운 소스를 컴파일 하고 실행 할때마다 저걸 직접 다 입력해야하나요? 구글링을 좀 해봤는데 설정방법이 교안이랑 달라서 좀 더 간편한 컴파일/런 방법이 없는지 질문드립니다. 그리고 추가로 교안을 어느정도 공부하고 개념 강의를 듣기 시작하는게 좋을까요? 안에 있는 코드를 전부 다 외우고 넘어가야되나요?
안녕하세요 큰돌 선생님! 궁금한게 있어 문의 드립니다. https://www.acmicpc.net/source/56686984 선생님 코드와 같게 작성했지만 visited 배열의 turn 부분을 다르게 작성했습니다. 선생님의 코드는 아래와 같고요 visited[turn%2][nx]= visited[(turn+1)%2][x]+1; 제가 작성한 코드는 아래와 같습니다. visited[(turn+1)%2][nx]= visited[turn%2][x]+1; 현재 시간의 위치는 x이고, nx로 갈때의 시간은 +1 증가할 것이므로 이렇게 작성했는데 왜 메모리 초과가 났는지 알 수 있을까요? 항상 좋은 답변 감사드립니다!
안녕하세요 강사님! http://boj.kr/f2b4f302a918471c9cff405182b5137f 여기에서 14행~17행에 관해 각 행에 대해서 질문이 있습니다. 14행은 cnt[j]를 초기화 하였고, 그 값을 선언하지 않았으니 cnt[j]의 값은 저절로 0이 되는것입니까? 15행부터 17행의 값들을 더하는 함수를 선언하지 않고 20행처럼 ret만을 출력해도 A,B,C의 값이 더해지는 이유가 += 기호때문이 맞습니까? 14행,15행,16행- if, 17행- else로 하지 않고 14행,15행- if, 16행,17행- else if로 하신 특별한 이유가 있나요? 8행에서 문제의 조건인 1<=C<=B<=A<=100을 고려하지 않고 단순하게 cin >> A >> B >> C를 해도 되는 이유가 사용자가 입력하기 때문인 단순한 이유인가요? ?
안녕하세요 c++입문 강의를 수강하고 있는 학생입니다. 강의 6:35 부근에서 array element의 주소값을 출력하기 위해 &를 입력하였고, 이렇게 되면 16진수 형태로 주소가 출력됩니다. 또한 int array[num_rows][num_columns] = { {1,2,3,4,5}, // row 0 {6,7,8,9,10}, // row 1 {11,12,13,14,15}, // row 2 }; 로 상단에 선언된 상태입니다. 10진수 형태의 주소값을 출력하기 위해 & 앞에 (int)를 붙였는데, 다음과 같은 오류가 발생합니다. [Error] cast from 'int*' to 'int' loses precision [-fpermissive] 이전 강의에서도 메모리 주소를 출력하는 예제가 있었는데, 그때에도 같은 오류가 발생했었습니다. (size_t)&(array[0]) (size_t)&(array[1]) (size_t)&(array[2])... 이렇게 (int) 대신 (size_t)를 사용하면 에러가 발생하지 않고 4byte단위로 메모리 주소가 10진수 형태로 출력되는데, (int)만 사용하면 이런 오류가 발생합니다. 원인을 알 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1-O에서 13번 라인 cnt=(cnt*10)+1이 어떻게 나왔는지 강의를 들어도 이해가 되지 않습니다ㅠㅠ 모듈로 연산으로 (a+b)%m=((a%m)+(b%m))%m 나머지를 덧섬 연산하기 전에 미리 구하는 것은 이해가 되는데 13번 라인의 식은 왜 저렇게 나왔는지 이해가 안되네요.. n==3이라고 할 때 첫번째 루프 : else에서 cnt=(cnt(1)*10)+1=11 cnt%=n => cnt=2; 두번째 루프 :else에서 cnt=(cnt(2)*10)+1=21(?) 여기서 21이 무엇을 의미하는지 모르겠습니다...ㅠ
안녕하세요 강사님. 풀이관련해서 질문인데요. 이분탐색으로 최소 시간을 구하는 것까지 이해했는데요. (ret - 1)에 대해서 다시 구하는게 잘 이해가 안되서요 ㅜ. N명이 모두 탈 수 있는 최소 시간이 ret이고, 그보다 1분 전시간에 탈 수 있는 인원을 구해서 N번 아이가 탈 때의 놀이기구 번호를 구하는 거로 이해하면 될까요?
안녕하세요 강사님 교안 및 1주차 개념강의를 듣고 문제를 보고있는 중인 학생입니다! 문제를 봤을때 로직은 알겠으나 아직 c++에 익숙하지 않은지 구현에서 어려움을 겪고 있어서 한문제 듣고 비슷한 문제로 연습을 하고 싶은데 비슷한 문제를 찾는 방법이 있을까요? 아예 기초문제같은경우는 백준내에서 비슷한 문제라는 탭을 제공해주는것 같은데 강의에 있는 문제는 분류를 어떻게 찾아야할지 잘 모르겠어서 질문드립니다!
강의 교안을 보면서 c++ 기초 공부를 하고 있습니다. 추천해주신 devc++에디터로 코드를 쳐가면서 하고 있는데 아주 가끔 어떤건 지원이 안될때가 있더라구요 대표적으로 지금 tuple을 보고 있는데 pair은 무리없이 되는데 이렇게 걸리는데 혹시 제가 먼가 환경설정을 빠트린게 있을까요 ? 도구에 c++14관련해서 적으라고 한것도 했습니다.
안녕하세요 큰돌님. 현재 강의 3주차 들어가고 있는데, 제가 c++도 교안으로 접하고, 자료구조 알고리즘에 대한 지식이 전무한 노베이스라그런지 3주차부터 상당한 난이도로 다가옵니다. 1~2주차는 그래도 혼자서 풀만하기도 하고 이해가 안돼도 강의를 보면 바로 혼자서 풀 수 있는 정도였지만, 3주차부터는 혼자서 푸는 것은 고사하고 강의를 봐야 겨우겨우 로직이 이해되는 정도입니다. 이 상태에서는 백준에서 기초 문제를 어느정도 풀고 와서 강의를 듣는 것이 도움이 될까요? 아니면 그냥 못풀더라고 계속 진행하는 것이 나을까요?
교안 p.118에 있는 재귀함수 예제문제에서 for(int i = depth; i < n; i++){ swap(v[i], v[depth]); //첫번째 swap(v[i], v[depth]); makePermutation(n, r, depth + 1); swap(v[i], v[depth]); //두번째 swap(v[i], v[depth]); } return; 이렇게 예제가 나와있습니다. 제가 이해한 바로는, 함수 makePermutation에 (3, 3, 0)을 대입하면 i와 depth는 0으로 첫번째 swap(v[i], v[depth]); 은 swap(0,0)이 되고 for문 안에 있는 makePermutation에 의해 매개변수 (3, 3, 0)이 (3, 3, 1)로 변하게되어 (3, 3, 1)에 해당하는 함수 makePermutation을 실행하게 되어 다시 첫번째 swap(v[i], v[depth]);이 실행되는 방식인 것으로 이해를 하였습니다. 여기서 첫번째 swap(v[i], v[depth]); 의 역할은 이해가 가지만 두번째 swap(v[i], v[depth]); 의 역할은 이해가 가지 않아서 질문 드렸습니다. 감사합니다!