묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
안녕하세요!강의 잘 듣고 있습니다.문제를 풀다가 시간복잡도 계산에서 궁금한 점이 있어서 질문드립니다.구체적으로,백준 보물섬 문제와 같은 격자탐색 문제에서격자의 가로가 W, 세로가 H라고 할 때 BFS 시간복잡도를 대략 O(W*H)라고 생각하면 될까요?감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-O go 함수 질문 드립니다.
안녕하세요 강사님풀이 해주신 코드 기준 go 함수의 이중 for loop 에서, 변수 i 가 가로선의 index 를 나타내는 것으로 이해하고있는데for loop 에서 변수 i 의 시작이 왜 here 부터 시작해야하는지 이해가 잘 되지 않아서요.cnt = 0 에서 가로선 1개를 놓고, cnt = 1 에서 또 가로선을 1개 더 놓게 되는 상황에서cnt = 0 에서 놓았던 가로선 보다 같거나 아래 위치에 가로선을 놓아야한다는 조건이 어떻게 도출된 것인지 궁금합니다.(가로선을 놓을 때 접하거나 연속되지 않아야 한다는 조건은이중 for loop 안에 if 문에서 걸러지는 것으로 이해하고 있습니다) (변수 i 의 시작을 0 으로 고정하면 시간 초과가 되는 것은 확인했습니다..)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A 출력 질문
안녕하세요 큰돌님!!덕분에 늘 좋은 강의 잘 듣고 있습니다. https://www.acmicpc.net/source/share/6fd1c581d7154d70a7523d1151aec4034-A를 공부하다가 질문이 있어서 게시글 남깁니다.제가 헷갈리는 부분은 이렇습니다. Q1. ret_v는 map자료구조인데요, ret_v[ret]과 같이 map에 접근한다면 ret이라는 키 값을 갖는 요소가 리턴되지 않나요? 그 요소는 vector 아닌가요..? Q2. 더 자세한 질문은 이렇습니다. sort()를 할 땐, ret_v[ret].begin()과 ret_v[ret].end()처럼 ret_v[ret]이 vector라고 가정하고 그 vector를 정렬하는 것처럼 보입니다. 그렇다면 ret_v[ret]는 vector를 리턴하는게 맞지 않나요? 이게 맞다면 Q1의 결과에 위배되는 것 아닌가요? 이 부분이 정말 헷갈립니다.Q3. 덧붙이자면, 해당 문제의 출력은 범위기반 for문을 통해 정답을 출력합니다. 그런데 for(int a : ret_v[ret]) 과 같이 접근하면 syntax오류가 뜨는건가요? sort()에서는 ret_v[ret]이 vector로 잘 인식했으면서.. 정답코드는 왜 ret_v[ret][0] 까지 명시해줘야 syntax오류가 없는건가요? 조금 질문들이 복잡해 보일 수 있겠지만, 디테일 측면에서 헷갈리고 있어서 어떤 개념이 약한지 보완하고 싶은 마음에 궁금한 부분을 모두 적었습니다. 가독성이 떨어진다면 다시 질문을 정리하여 올려보도록하겠습니다. 모쪼록 큰돌님의 답변을 기다리고 있겠습니다.감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 1-O 질문드립니다
안녕하세요, 큰돌님위의 그림은 제가 1주차 1-O 문제를 어떻게 풀지 나름대로 전개를 해본 그림입니다.이를 코드로 변환하는 중, 정답이 계속 틀려서 확인해보니 큰돌님 코드에서는 빨간색 밑줄 친 부분의 코드가 분홍색으로 밑줄 친 부부인 (1%n), (11%n) 부분만 계산하는 코드를 확인하였습니다. 제가 전개한 식에서는 노란색 박스 친 부분인 (10%n)이 계속 곱해져야 하는것 같은데... 어디서 제가 실수를 한 것인지 잘 모르겠습니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S (1325번 - 효율적인 해킹) 문제 질문 드립니다.
안녕하십니까, 큰돌님! 2-S (1325번 - 효율적인 해킹) 문제 질문 드립니다.문제 예시는 통과하는 데 코드 제출시 계속 출력초과가 떠서 질문 드립니다.하기 아래 링크는 제 풀이 입니다.http://boj.kr/6fbef53ab3694838859828bf2a71d964 항상 좋은 가르침을 주셔서 감사합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
핵심을 말하자면정렬함수 풀이과정을 하나하나 써보고디버그로 확인해봐서 알겠는데..뭔가 명확하게 머리에 들어오질 않습니다..구구절절 써보자면요처음에 정렬함수 만들떄비교를 위해 두개의 반복문이 필요하고작은 값을 저장할 변수가 필요하고비교를 위한 조건문이 필요하고작은 값을 변수에 저장하고 위치를 섞어 준다 까진 생각을 했는데두번쨰 반복문 조건부분과비교하는 부분의 코드구현을 못하겠더라구요..이유가 저는 문제를 있는 그대로 안보고혼자 작은 값을 아직 모르니 값을 다 비교를해야된다고 생각해서 반복문 두개를 다0번쨰부터 시작하니까 1과 다른 숫자를 비교하니 진행이 안되더라구요..그래서 풀이과정을 봤는데 이해가 안가서실행순서와 풀이과정을 메모장에 하나하나적고 디버그 모드로 확인해가면서 봤는데도아직 이해가 잘 안됩니다..더 문제는 뭐가 정확하게 이해가 안되는지를 모르겠어요..어떻게 동작하는지를 알겠는데머리속은 명확하게 이해를 못한거 같으니미칠꺼 같아요..제가 왜 이해를 못할까요?비교하는 조건 쪽을 제가 이해를 못하는거 같은데왜 if (numbers[b] < numbers[tx]) 일까..하나하나 실행순서를 전개해보고 반대로 했을떄 어떤지 해봐서 왜 if (numbers[b] < numbers[tx]) 인지는알겠는데.. 왜 머리에 안들어 올까요..뭘 더 해봐야 될까요..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 질문입니다.
예제 입력을 복붙하면 빈칸뜨고 그냥 제가 스스로 입력할때도 (), [()] 이런거 하면 작동하다가 )( 이런식으로 안되는것을 입력해도 빈칸뜨는데 이유를 모르겠네요.. http://boj.kr/59a91e80c7e44780bab1579a8fdf1083
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
c++ sort 알고리즘 질문드립니다.
안녕하세요, 선생님.숫자로 바꿔서 크기를 비교하는 경우에 Out of range 에러가 발생해서, 문자열의 크기를 비교하는 compare함수를 직접 구현을 해서 풀었습니다.그런데 제가 구현한 compare함수에서 비교하는 두 문자열이 같은 경우에, true를 반환하면 에러가 발생하고, false를 반환하면 에러가 발생하지 않는지 이유를 잘 모르겠어서 질문드립니다.감사합니다.http://boj.kr/667ee88dbe1f40dc88c2a27c2636868d
-
해결됨홍정모의 따라하며 배우는 C++
인터페이스 클래스에서 reportError의 매개변수에 대해 궁금한 것이 있습니다.
교수님께서는 #include <string>을 하셨는데, 모든 클래스의 reportError 매개변수에 const char* errorMessage를 넣으셨는데 이유가 무엇인가요? 아래와 같이 std::string으로 대체해서 실행시켰는데 결과는 똑같이 나왔습니다.#include <iostream> #include <string> using namespace std; class IErrorLog // 인터페이스는 앞에 I를 붙여주는 관습 { public: virtual bool reportError(std::string errorMessage) = 0; virtual ~IErrorLog(){} }; class FileErrorLog : public IErrorLog { public: bool reportError(std::string errorMessage) override { cout << "Writing error to a file" << endl; return true; } }; class ConsoleErrorLog : public IErrorLog { public: bool reportError(std::string errorMessage) override { cout << "Printing error to a console" << endl; return true; } }; void doSomething(IErrorLog& log) { log.reportError("Runtime error!!"); // 위에서 순수 가상 함수를 정의만 해도 reportError의 존재는 알고 있기 때문에 메소드호출 가능 } int main() { FileErrorLog file_log; ConsoleErrorLog console_log; doSomething(file_log); doSomething(console_log); return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-E 뮤탈리스크 시간복잡도 질문
<질문>###https://www.acmicpc.net/problem/12869뮤탈리스크문제의 시작복잡도는 BFS로 탐색하기니까O(V+E) = O(60^3 + 6*60^3)=O(150만)이렇게 계산하는게 맞을까요?#####문제를 풀기 전에6가지의 선택지를 최대 14번쯤하고 6^14 는 10억보다 크니까 무식하게 풀기는 안되겠다고 생각을 했습니다 ((9+2+1)*14=182 > 60*3)그런데 강의를 보고 각각 최대 6개의 가지가 있는 60^3의 상태를 탐색하는 문제라고 생각하니까 잘못 생각했다는 걸 알았습니다. 위에처럼 시간복잡도를 계산하는게 맞을까요?이상입니다. 읽어주셔서 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-H번 질문있습니다.
언제나 좋은 강의 감사드리고 좋은 답변 감사드립니다. 다름이 아니라, 6-H, 2776번을 풀었는데 함수의 입력 인자로 인해 시간 초과가 발생했습니다!시간 초과가 난 코드는 다음과 같습니다.http://boj.kr/991bd2528553446498f49861a7098e78그래서 강의 영상을 보고 난 후, 딱 한 줄에 차이점이 있다는 것을 알았습니다. 바로 이분 탐색 함수에 벡터 인자가 vector<int> v가 아니라 vector<itn> &v인 것인데요. &v, 즉 주소로 접근을 하지 않으면 시간 초과가 나는 이유를 알 수 있을까요? 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
ret 변수가 이해가 가지 않습니다
안녕하세요 선생님!go 함수에서 ret=(ret*ret)%c; 인데예를 들어 go(2,4)->go(2,2)->go(2,1) 이라면go(2,1)은 2%c를 반환하여 ret=go(2,1)=2%c 가 되고 다음줄의 ret=((2%c)*(2%c))%c 가 되면 % 연산이 중복되는게 아닌가 하는 의문이 듭니다.그래서 ret=(ret*ret) 이 되어야 하는 것 같아서 돌려봤는데 TC는 통과되었는데 백준에서 틀렸다고 나와서 질문드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 성곽
http://boj.kr/12848c5737a747c6b107af81e35dbd5e 해당문제를 맞추긴 했는데92번째줄 코드를 원래if(check(k,i,j))로 작성하였을 때는 오류가 발생했습니다. 조금 설명을 드리면,0-북/1-동/2-남/3-서 > 시계방향으로 벽이 있는 지 체크하는 함수인데 connectedcomponent 내부에서는 제대로 작동하는데92번째줄 코드에서 사용하였을 때는 0,0일때 동쪽에는 벽에 없는데도 동쪽에 벽이있다고 확인됩니다...어떤 점이 잘못되었는지 모르겠습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - D : 4179 질문있습니다
안녕하세요 좋은 강의 감사합니다.https://www.acmicpc.net/source/56355675저는 일단 dfs로 접근을 했는데 문제가 다른 정답들을 보았는데 bfs로 푸시더라구여dfs로는 재귀 호출이 많아서 못푸는 문제인건가요?재귀로 풀지 말지 결정하는 기준점이 따로 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 79페이지 질문이요!
교안 79페이지 2차원 배열 예제에서 for(int i = 0; i < 10; i++){ vector<int> vv; v.push_back(vv); }. 이 코드가 하는 역할이 어떤건가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-C질문입니다.
http://boj.kr/44ff21fc286b45139debd5c16bd40506 -> 이 링크는 제가 못풀어서 구글링한다음에 푼 코드입니다. 틀렸다고 떠서 도저히 몰라 강의를 듣고 짠다음에 제출하니까 http://boj.kr/8de2f6940c8c44b8b28fbf87f206e9ce이것은 강사님 코드보고 제가 작성한 코드입니다. (맞았습니다 가 뜨는데 어디가 틀린것인지 모르겠습니다 ㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6236번 질문있습니다!
안녕하세요! 큰돌님, 수업 잘 듣고 있습니다.http://boj.kr/b29b0acec19746ea9af01dde3a5a198c제가 이렇게 풀어봤는데요... hi는 100000 * 10000을 생각해서 1000000004로 설정했습니다. 테스트 케이스는 맞는데, 계속해서 틀리네요.. 이분탐색 개념이 아직 어려워 문제 푸는게 어려운 것 같습니다.이 코드의 문제점을 알고 싶습니다! 그리고 이런 경우에 답지와 강의를 보고 질문하는 것이 좋은지.. 아니면 바로 질문하는 것이 좋은지도 궁금합니다! 일단 지금은 강의도, 답지도 보지 않았습니다. 감사합니다.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
strcpy() 구현 관련 질문
포인터로 strcpy()를 구현할 때,1 char* StrCpy(char* dest, const char* src)2 {3 char* ret = dest;4 while (*src != '\0')5 {6 dest = src;7 dest++;8 src++;9 }10 *dest = '\0';11 return ret;12 }dest 포인터 변수를 반환하면 main 함수에서 출력 시 아무것도 출력 되지 않고, 3번째 줄처럼 dest 주소를 다른 char형 포인터에 저장하고, 해당 포인터 변수로 main함수에 반환을 해야 정상적으로 출력이 됩니다.어떤 이유에서 dest 포인터 변수는 출력이 안되는지 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5주차 개념강의 1931
https://www.acmicpc.net/source/share/0e6ab88a839b40ff93c8f3001f9755611931 질문있습니다. 제가짠 코드가 시간초과가 뜨는데 반복문이 O(N^2)번 돌기 때문에 10만 * 10만 이라서 시간초과가 뜨는것인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6주차 개념강의 10분 14002 질문
http://boj.kr/233b91ddf6444ca98ad381224f218aa3 dp로 풀었습니다. 그리고 trace라는 배열에 조건에 만족하는 이전 값을 넣어서 추적할려고하는데 답은 나오는데 틀렸다고 뜹니다... 어디서 틀린것인지 모르겠습니다...