묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-Y 원판 돌리기
http://boj.kr/f8db50bd4ee848db99f4e157879c03d1테스트 케이스는 맞고 출력해봤을 때 해당 예제처럼 인접 값 삭제되는게 확인되는데 왜 틀렸는지 모르겠습니다.. 저는 vector<int> vec[54]로 1번부터 n까지 값을 저장한 후, 벡터를 rotate했습니다..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
(공부 방법 관련) 모르겠으면 답을 보고 풀어도 되는걸까요ㅠㅠ
안녕하세요! 선생님 강의 잘 듣고있습니다 ㅎㅎ다름이 아니라,, 공부 방법에 대해 궁금한 점이 있어서요. 2주차까지는 제시해주신 문제 문제 대부분이 실버라서 답을 안 보고 풀고, 선생님 강의 보면서 더 나은 답을 배워가는 식으로 공부해왔는데,, 3주차 브루트포스부터는 골드가 대부분이라 자꾸 답에 도달하지 못하고 결국 강의 코드를 참고하게 됩니다ㅠㅠ (제가 아직 골드를 안 보고 풀 수 있는 실력이 아닌 것 같아요..)당연히 몇 시간 동안 저 스스로 풀려고 노력하는데, 늘 테케는 맞추더라도 히든테케를 틀리고ㅠㅠ 테케가 맞았으니까 어느정도 답에 근접하긴 했다고 생각했는데 막상 큰돌쌤 답을 보면 저랑 다르게 짧고 깔끔하게 구조화하셨더라구요. ㅠㅠ 예를 들면, 인구이동(boj 16234) 문제에서 인접 컴포넌트니까 dfs써야지! 하고 와다다닥 dfs를 써서 코드를 짜긴 짜는데 주어진 조건이 많아지니까 혼란스러워하면서 배열도 많이 만들고 flag도 많이 만들어서 덕지덕지 코드를 짜다가 포기하고 답을 보는.. 이런식이 반복됩니다.. 다음날 다시 풀어봐도 전날 푼걸 외워서 푸는 것 같고 제가 다른 문제가 나왔을 때 풀 수 있을거라는 자신이 안 들어요 이렇게 스스로 풀지 못 하는 문제가 거의 대부분이라도 이런식으로 계속 답을 보면서 공부하는게 맞는걸까요? 쌤 답을 보면서 공부를 해도 제 스스로 문제푸는 힘이 길러질까요?ㅠ.ㅠ 한탄 읽어주셔서 감사합니다..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
CreateMonster함수 질문
1.void CreatMonsters(Statinfo* monsters, int count)로 선언을 했는데 제가 여기서 monsters부분을 monsters[]로하니 오류가 나더군요 오류가 나는이유가 궁금합니다 Statinfo타입의 배열로 만들었는데 그러면 배열로 선언해줘야 하는거 아닌지 궁금합니다2. 1번과 연관된 질문입니다 void CreatMonsters(Statinfo* monsters, int count) 내부에서 랜덤밸류를 설정해서 몬스터의 i번쨰의 데이터를 집어넣는데 함수형식을 보면 Statinfo*라고해서 포인터로 선언했는데 내부 코드를보면 monster[i].hp를 사용하는데 배열관련된 부분은 .으로 접근해서 사용하는건 알겠는데 처음 함수를 선언할때 Statinfo*형식인데 ->로 접근해서 데이터를 변경하는게 맞는거아닌가요? 너무 헷갈립니다 3.EnterBattle(playerinfo,&monsters[index])을 실행할때 이런 모습인데 여기서 EnterBattle은 bool EnterBattle(Statinfo* playerinfo, Statinfo* monsterinfo);이런 모습인데 실행시킬때 &playerinfo가 아닌 그냥 playerinfo인 이유가 Entergame함수에서 인자로 받은 playerinfo가 애초에 주소값이기때문에 그냥 playerinfo로 넣는건가요? 그리고 또 monsters배열에는 &가 붙은이유는 &가없으면 주소값이아닌 그냥 값의 형태기때문에 &를 붙여 주소로 변경해주는건가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
배열을 이용한 구현 풀이 질문드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 큰돌님! 항상 좋은 강의 감사합니다! 다름이 아니라 제가 이 문제를 풀 당시, 입력의 범위도 작고 풀이가 딱히 생각이 나지 않아 배열을 이용해 쌩구현을 했습니다. 하지만 N과 J의 범위가 커지면 제가 풀이한 방법으로는 시간복잡도가 커져서 틀리게 되겠죠?만약, M이 1이고, N, J가 1000만일 때 최악의 경우 사과가 양 끝 인덱스(1번과 1000만번)에만 떨어진다면 시간복잡도는 1000만 * 1000만이 될까요? 코드: http://boj.kr/047fdd5efd2c4f37968a1764f52f9a40
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-E 메모리제이션 질문 있습니다.
큰돌님 안녕하세요?해당문제 메모리제이션 질문 있어서 들고 왔습니다. 아래는 제가 짠 코드고, 전체적인 로직은 해설하고 같은데 mem 쪽이 좀 달라서 질문 들고 왔습니다.http://boj.kr/5fac53ce112b4d7a8781f7c8f21ea24a 저는 mem 쪽을 아래와 같이 처리했는데요,&ret = dp[F][H];(ret !=0) return ret; 큰돌님 해설에는 조금 다르게 되어 있는 것 같아서요if(dp[whole][not_whole]) return dp[whole][not_whole];&ret = dp[whole][not_whole]; Q1. 왜 해설에서(ret !=0) return ret;이거를 쓰지 않는건가요? Q2. 아래 두 코드는 사실상 의미가 같은건가요?&ret = dp[F][H];(ret !=0) return ret;if(dp[whole][not_whole]) return dp[whole][not_whole];&ret = dp[whole][not_whole]; Q3. 강의 1분 54에서도 "dp가 있으면 그냥 dp를 반환한다"고 설명해주셨는데 위 질문과 관련이 있을까요?"dp가 있으면 그냥 dp를 반환한다"는 말도 이해가 어려워서 추가로 설명 받을 수 있을까요? 답변 미리 감사합니다.수강자 올림
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 반례
안녕하세요! 숨바꼭질 문제를 풀다가 trace 배열을 만드는 것 말고, visited의 값 만을 이용해 문제를 풀 수 있을 것 같아서 다음과 같이 코드를 작성했습니다.http://boj.kr/ef5e639dacc44c76a86baa28a9d967b8visited값에 대한 map을 만들어 값을 역추적 해 나갔습니다! 근데 48% 쯤에서 틀렸다고 나오네요,,, 백준 질문게시판에 적힌 반례들을 모두 넣어봐도 적절한 반례를 못찾겠습니다ㅠㅠㅠ
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
knight 기본생성자
knight에 기타 생성자를 만들어 주면, 기본 생성자를 사용 할 수 없다고 했는데, 새로운 knight를 만들어 주어 기본 생성자를 이용하니깐 잘 만들어 지더라구요.제가 잘 못 이해 하는걸까요?같은 객체일 경우 기본 생성자가 실행이 안된다는 말씀 일까요?새로운 객체면 상관 없는거구요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-V 바텀업 질문
선생님 안녕하세요! 저는 한번 바텀업 형식으로 풀어봤는데요,http://boj.kr/c788996f4fab486191d7c17ca93ff668테스트케이스는 다 맞는데 틀렸다고 나오네요 ㅜ우선 2개의 dp배열을 만들어서 자전거와 도보, 같은 index일 때 두가지 옵션이 서로 더해지지 않게, 즉 겹치지 않게한 것이 저의 의도입니다.어디서 틀렸을지 잘 감이 안오는데 ㅜㅜ 한번 봐주시면 감사하겠습니다 🙇♀
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O. 모듈러 연산 질문
모듈러 연산은 분배법칙이랑 비슷한 것 같은데, 유사한 것이라고 알고있어도 될까요?또한, 이제까지는 cin, cout을 쓰시다가 왜 이 문제에서는 scanf, printf를 쓰셨는지 궁금합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 주몽 문제 재귀를 이용한 조합으로 푸는 방법
모범 답안을 확인할 수 있을까요? 저도 풀 때 선생님이 푸신 것 처럼 이중 포문을 이용해서 했었는데, 재귀를 이용해서 푸는 방법도 궁금합니다.또한, r이 3 이하일 경우 무조건 이중 for문으로 돌리는게 시간복잡도가 재귀보다 낮게 나오나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1 - N 짊
http://boj.kr/84fc8018313e4742bc5b749cee39e0f9선생님 제가 코드를 짜보았는데 틀립니다가 계속 나옵니다. 혹시 어느부분이 문제인지 알려주실 수 있나요?
-
미해결
c++ 이상하게 저장되는 코드 질문있습니다
void put2byte(void *dest, uint16_t data){ *(uint16_t*)dest = data; } uint32_t num_data = hdr.get_num_data(); void* offset_array = hdr.get_offset_array(); //오프셋 어레이 받아오기 uint16_t now_data_region_off = hdr.get_data_region_off(); void* data_region = 0; uint16_t off = 0; uint16_t remain_data_region_off = now_data_region_off - input_record_size; put2byte((void*)((uint64_t)offset_array + num_data * 2), remain_data_region_off); 이렇게 되어있는데 remain_data_region_off 이 값이 37이하이면 37이하로 저장되는게 아니라 이상하게 저장이 되는데 무슨 문제인지 모르겠습니다 예를 들어 remain_data_region_off = 37 이면 7717이 저장되는데 num_data가 6일때만 발생합니다 0~5까지는 제가 설정한 값대로 저장이되는데 이유를 모르겠습니다
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
[문자열] 강의 부분에서 StrCpy함수 포인터로 구현 하는 부분 질문 있습니다.
글로 질문은 처음이라 두서 없을 수 있다는 부분 양해 부탁 드립니다. char* StrCpy(char dest, char src) 함수에서 char * ret = dest; 선언을 통해 기존 원본 위치값을 저장해 주는것은 알겠는데,while문이 다 돌고 나서 'dest'의 값을 확인해 보면 문자열이 없는 것을 데이터를 확인 하여 알았습니다.그 이유가 'dest++'을 통해 포인터의 시작 위치 값을 변경해 주어서 값이 없는 주소 부분을 가르키기 때문에 'dest'의 데이터가 아무것도 없는 것이 맞을까요? 그렇기 때문에 원본 데이터에는 정상적으로 들어있고,함수내에서 'dest'의 주소 시작점이 뒤로 밀려나 데이터가 없다고 판단해도 되는지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-J 코드 질문입니다.
안녕하세요 강사님! 강의 너무 잘 듣고 있습니다!제가 짠 코드랑 강사님 코드랑 좀 다르지만 답은 맞다고 뜨는데, 이렇게 풀이해도 큰 문제 없는지 여쭤보고 싶어서 코드 올려봅니다.http://boj.kr/5a5e290d48434a57a34847c066b4de7b
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
답은 맞았는데, 이상한 부분이 있어서 질문드려요
http://boj.kr/a12c58c1df11493f8ba78847feffa3b9 선생님, 안녕하세요~완전탐색(재귀방식)으로 해서 어떻게 답을 맞췄습니다.처음에는 dp테이블에 동전이 n개일때 경우의 수를 저장해야겠다고 생각하고 코드를 짜보았지만, 뭔가 잘 되지않아dp[34][34] 이런식으로 남은 w가 n개, h가 m개일때 경우의 수를 저장하게 하는 방식으로 해서 통과하였습니다.그런데 이상한 점은, 한번 dp방식으로 해서 답을 맞췄으면, 그 다음 입력때도 이전에 저장된 dp테이블에 있는 값을 그대로 이용해서 답을 맞출 수 있을 줄 알았는데,이전에 저장된 dp테이블을 이용하면 다른 답이 나와서, 입력을 할 때마다 dp테이블을 초기화 해주는 방식을 사용하고 있습니다.음,, 어떤 부분때문에 이렇게 나오는 걸까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2- I segmentation fault
안녕하세요 선생님 해당 코드는 정답코드입니다. 그러나 제가 주석처리한부분으로 코드를 짰을때는 segmentation error가 나와서 그 이유를 여쭤보고 싶습니다.또한 선생님께서는 size()를 사용하셨고 저는 length()를 사용했는데 size()와 length()의 장단점도 알고싶습니다 http://boj.kr/df71a1d8b94a49cca8ed3d2cbb104d78감사합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요! 버퍼 플러싱 관련하여 질문드립니다.
교안 32p에 cin을 사용해서 반복횟수를 입력 받고 getline을 사용시에 정수 입력 => 엔터 => 문자열 입력의 흐름이 되고 cin은 개행문자 전까지 입력을 받기 때문에 버퍼에 \n이 남아서 버퍼 플러싱이란걸 해야 함으로 이해했습니다. 그리고 버퍼플러싱이 임시저장소인 버퍼의 데이터를 프로그램에서 사용하기 위해 영구저장소로 가져가는 것임도 확인했습니다. 이 과정에서 2가지 여쭙고싶습니다. 위의 문제로 입력 버퍼에 개행 문자가 남아있다면 이후에 데이터를 입력할 때 남아있는 개행문자에 걸려서 오류가 날 것으로 생각합니다. 그래서 따로 남아있는 개행문자를 처리해야되는 것으로 이해했습니다. 제가 이해한게 맞는지 궁금합니다!32p의 버퍼 플러싱 코드에서string bufferflush; getline(cin, bufferflush);의 코드로 남아있는 개행문자를 버퍼 플러싱 해주는것으로 사료되는데, 위 코드가 어떤 원리로 남아있는 개행문자를 처리해주는지 이해가 가지않습니다.. ㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-D (백준2573 영역구하기) 백터사용시 메모리 초과
안녕하세요!(질문글 올리다가 제코드를 다시보니 왜 메모리초과가 나는지.. 알게돼서 글쓴게 아까워서 정보공유차 남깁니다)요즘 코딩테스트에 vector를 넘겨받는 케이스가 많아서연습삼아 함수인자로 vector를 넘겨주는 방식으로 문제를 풀고있습니다. 전역배열로 문제를 풀면, 메모리초과가 안나는데, vector를 넘기니 메모리초과가 발생하네요. ----------- 함수 선언은 아래와 같이 했습니다.-----void dfs(vector<vector<int>> map, vector<vector<int>>& visited, int x, int y, int num)----------------------------원인 ) 재귀호출하면서 매번 map이 복사가 되면서 메모리를 잡아먹는게 원인 이였습니다. & 참조 연산 붙여주니 바로 통과되네요. 다른 분들은 이런 실수 안하시길.. 수정) void dfs(const vector<vector<int>>& map, vector<vector<int>>& visited, int x, int y, int num)교안대로 전역변수쓰는게 확실히 실수를 줄여줘서 좋긴하지만 이것도 좋은 경험이라고 생각하고 넘어가게습니다.
-
해결됨MFC Windows 프로그래밍 - 기본
mfc 내부에서 콜백 함수 구현 방법
안녕하세요 현재 상황mfc를 이용해서 모든 창(window)의 이름을 전부 나열 해서 리스트 박스에 텍스트로 넣는 것을 구현 하려고 하는 중입니다.도중에 함수중EnumWindows(콜백함수, NULL)요 함수를 사용하려 했지만 콜백함수(인자)로 인해 사용이 안됩니다.win32를 통해 사용하여 위에 것은 다 구현했지만 mfc에서는 구현을 못한 상태 입니다. 이유는 위에와 같습니다....ㅠㅠ 구글 검색부터 이것저것 다해봤는데 도저히 방법이 안나와서 질문 합니다ㅜㅜ 궁금한점Enumwindows를 대체하는 함수가 존재합니까?mfc에서 콜백함수를 구현 하는 방법이 있습니까?Enumwindows를 구현할 방법이 있습니까?(콜백함수 빼고)
-
미해결[게임 프로그래머 도약반] DirectX11 입문
그림자 관련 질문입니다.
강의 잘 듣고 하나씩 적용 해 보고 있습니다. 그런데, 그림자에 궁금증이 생겨서 질문드립니다. 최종적으로 적용하고, 이런 느낌으로 되었는데, 그림자 적용 범위가 좁은 것 같아서, 바운딩 스피어의 Radius를 넓히는 식으로 해봤지만 범위는 넓어져도 그림자 농도가 너무 옅어지거나, 수치가 커지면 거의 안 보이는 수준이 되던데, 혹시 해결 방법이 있을까요? 텍스처 크기만 늘린다고 되는 문제는 아닌 거 같아서 질문 드립니다.