묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 일곱난쟁이문제입니다
안녕하세요 강사님!일곱난쟁이 문제에 대해 질문 드립니다!http://boj.kr/90d2372449b74e20b4ad80e1e110ba89제가 구현한 코드입니다.강사님의 코드는 sum선언을 int sum = 0;으로 do while구문 안에 초기화를 하셨는데 저처럼 3행에 sum을 전역변수로 하여서 선언하면 안되는 것인가요? 그리고, sum을 전역변수로 선언이 가능하다면 int sum;이 아닌 int sum = 0;으로 초기화까지 해야하나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제 풀 때 방향성에 대해
안녕하세요 1주차 강의를 듣고 있는 학생입니다.지금 알고리즘 문제 풀이를 할 때, 먼저 문제를 생각해보고 문제를 맞춘 다음 강의를 보고 더 알아가고 수정하면서 공부하고 있습니다.처음부터 문제를 봤을 때 도대체 어떤 방식으로 문제를 풀어야 할 지 모를 경우 ( 분류를 봐도 모르는 경우 ) 강의를 먼저 보고 나서 문제를 풀어보는 방식으로 진행 하는게 맞는 방향일까요? 그렇게 풀이한 문제가 머리에 잘 남지 않는 경우가 많았어서 고민입니다...
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
맥에서 vs code로 실행 관련 질문입니다
교안에 보면g++ -std=c++14 -Wall a.cpp -o test.out -> 컴파일./test.out -> 컴파일 된 소스 실행이 두 명령어를 터미널에 입력 후 코드를 실행하라고 나와있는데그럼 매번 코드를 변경하거나 새로운 소스를 컴파일 하고 실행 할때마다 저걸 직접 다 입력해야하나요?구글링을 좀 해봤는데 설정방법이 교안이랑 달라서 좀 더 간편한 컴파일/런 방법이 없는지 질문드립니다.그리고 추가로 교안을 어느정도 공부하고 개념 강의를 듣기 시작하는게 좋을까요? 안에 있는 코드를 전부 다 외우고 넘어가야되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
17071번 메모리 초과
안녕하세요 큰돌 선생님! 궁금한게 있어 문의 드립니다.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 증가할 것이므로 이렇게 작성했는데 왜 메모리 초과가 났는지 알 수 있을까요?항상 좋은 답변 감사드립니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-C질문입니다!
안녕하세요 강사님!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를 해도 되는 이유가 사용자가 입력하기 때문인 단순한 이유인가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-B BFS 시간초과질문
1012 BFS로 풀어봤습니다. 시간초과가 나는데,이유를 모르겠습니다. 12%에서 시간초과가 나와서 백준 질문 게시판도 확인했지만, 해당 위치에서 반례또한 제대로 답이 나왔습니다.어떤 점이 문제인지 알고 싶어 질문 남깁니다.항상 좋은 가르침 감사드립니다.
-
미해결홍정모의 따라하며 배우는 C++
메모리 주소 10진수로 출력
안녕하세요 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)만 사용하면 이런 오류가 발생합니다. 원인을 알 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 13번 라인
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 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=11cnt%=n => cnt=2;두번째 루프:else에서cnt=(cnt(2)*10)+1=21(?) 여기서 21이 무엇을 의미하는지 모르겠습니다...ㅠ
-
해결됨홍정모의 따라하며 배우는 C++
클래스 템플릿 특수화에서 boolalpha로 표현된 리턴값에 대해 질문이 있습니다.
#pragma once #include <bitset> template <class T> class Storage8 { private: T array_[8]; public: void set(const int& index, const T& value) { array_[index] = value; } const T& get(int index) const { return array_[index]; } }; template<> class Storage8<bool> { private: unsigned char data_; public: Storage8() :data_(0){} void set(int index, bool value) { unsigned char mask = 1 << index; // left shift std::cout <<"index bit : " << std::bitset<8>(mask) << std::endl; if (value) data_ |= mask; // flag on else data_ &= ~mask; // flag off std::cout << "After masking value : " << std::bitset<8>(data_) << std::endl; } bool get(int index) { unsigned char mask = 1 << index; return(data_ & mask) != 0; // Has data_? } };main.cpp#include <iostream> #include <array> #include "Storage8.h" using namespace std; int main() { // Define a Storage8 for integers Storage8<int> intStorage; for (int count = 0; count < 8; count++) intStorage.set(count, count); for (int count = 0; count < 8; count++) cout << intStorage.get(count) << endl; cout << "Sizeof Storage8<int> " << sizeof(Storage8<int>) << endl; // Define a Storage8 for bool Storage8<bool> boolStorage; for (int count = 0; count < 8; count++) boolStorage.set(count, count & 3); // 늘어나는 count와 3을 bitmasking for (int count = 0; count < 8; count++) cout << std::boolalpha<< boolStorage.get(count) << endl; cout << "Sizeof Storage8<bool> " << sizeof(Storage8<bool>) << endl; return 0; }이런 결과가 나왔는데요, 원문 learncpp에서는 boolStorage.set(count, count & 3); 처럼 value값에 늘어나는 count와 숫자 3을 넣었습니다. 그런데 이 원리가 어떻게 되는지 잘 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-J 놀이공원 문제 질문
안녕하세요 강사님.풀이관련해서 질문인데요. 이분탐색으로 최소 시간을 구하는 것까지 이해했는데요.(ret - 1)에 대해서 다시 구하는게 잘 이해가 안되서요 ㅜ.N명이 모두 탈 수 있는 최소 시간이 ret이고,그보다 1분 전시간에 탈 수 있는 인원을 구해서 N번 아이가 탈 때의 놀이기구 번호를 구하는 거로 이해하면 될까요?
-
미해결홍정모의 따라하며 배우는 C++
여러가지 리턴 타입에 관한 강의가 어떤 걸까요?
안녕하세요 7.3 참조에 의한 인수 전달 강의 듣고 있는데 교수님이 여러가지 리턴 타입에 관한 강의가 앞쪽 강의에 있다 하시는데 찾지를 못해서요 몇번째 강의 인지 알고 싶습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
구현관련 질문
안녕하세요 강사님교안 및 1주차 개념강의를 듣고 문제를 보고있는 중인 학생입니다!문제를 봤을때 로직은 알겠으나 아직 c++에 익숙하지 않은지 구현에서 어려움을 겪고 있어서 한문제 듣고 비슷한 문제로 연습을 하고 싶은데 비슷한 문제를 찾는 방법이 있을까요? 아예 기초문제같은경우는 백준내에서 비슷한 문제라는 탭을 제공해주는것 같은데 강의에 있는 문제는 분류를 어떻게 찾아야할지 잘 모르겠어서 질문드립니다!
-
미해결C++ 로 배우는 자료구조와 알고리즘
강의자료 소스 코드 부탁드립니다.
영상에 나오는 코드가 잘려서 코딩할수가 없네요 소스코드 파일 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 교안
강의 교안을 보면서 c++ 기초 공부를 하고 있습니다. 추천해주신 devc++에디터로 코드를 쳐가면서 하고 있는데 아주 가끔 어떤건 지원이 안될때가 있더라구요 대표적으로 지금 tuple을 보고 있는데 pair은 무리없이 되는데 이렇게 걸리는데 혹시 제가 먼가 환경설정을 빠트린게 있을까요 ? 도구에 c++14관련해서 적으라고 한것도 했습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
안녕하세요 큰돌님.현재 강의 3주차 들어가고 있는데, 제가 c++도 교안으로 접하고, 자료구조 알고리즘에 대한 지식이 전무한 노베이스라그런지 3주차부터 상당한 난이도로 다가옵니다.1~2주차는 그래도 혼자서 풀만하기도 하고 이해가 안돼도 강의를 보면 바로 혼자서 풀 수 있는 정도였지만, 3주차부터는 혼자서 푸는 것은 고사하고 강의를 봐야 겨우겨우 로직이 이해되는 정도입니다.이 상태에서는 백준에서 기초 문제를 어느정도 풀고 와서 강의를 듣는 것이 도움이 될까요? 아니면 그냥 못풀더라고 계속 진행하는 것이 나을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요! 재귀함수에 관해서 질문드립니다
교안 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]); 의 역할은 이해가 가지 않아서 질문 드렸습니다. 감사합니다!
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
테스트 케이스 질문
#include <iostream> #include <vector> using namespace std; int main() { freopen("input.txt", "rt", stdin); int s, n, i, j, tmp, idx; scanf("%d%d", &s, &n); vector<int> a(n); for (i = 0; i < n; i++) { scanf("%d", &tmp); if(i < s) a[s-1-i] = tmp; else { idx = s; for (j = 0; j < s; j++) { if(a[j] == tmp) { idx = j; break; } } for (j = idx - 1; j >= 0; j--) a[j+1] = a[j]; a[j+1] = tmp; } } for (i = 0; i < s; i++) printf("%d ", a[i]); return 0; }이렇게 작성했는데 채점 폴더 전부 통과하는데 만약 입력이 5 51 2 2 3 4 이 들어왔다면 출력이4 3 2 2 1로 출력 되니까 위의 코드는 틀린 코드 같은데 맞나요???
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요! 1-K 해설을 보다가 24번째 줄에서 ret.insert()부분에서 ret.begin()을 생략해도 잘 돌아가던데 이에 관해 질문을 하기 전에 다른 사람들의 질문을 살펴 보았는데 insert의 첫인자에는 이터레이터가 필요하다고 들었습니다. 그냥 ret.size()/2만 넣어도 되는 이유가 무엇인가요?
-
미해결홍정모의 따라하며 배우는 C++
메모리 주소에 관한 질분
int x;x = 123;이 상황에서 &x를 출력하면 16진수로 이루어진 x의 주소를 알 수 있습니다.그런데 선생님께서 프로그래머가 123 숫자에 대한 주소를 갖고 오기가 어렵다고 하셨는데 x에 123을 대입했으니, x의 주소가 곧 123의 주소 아닌가요? 선생님께서 가져오기 어렵다고 하신 123의 주소가 뭔지 잘 모르겠습니다ㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-G번 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 3-G 문제에서 정점에 이미 방문한 경우(현 정점 거리 +1 == 다음 정점 거리) 인 경우만 체크해주는데(현 정점 거리 +1 < 다음 정점 거리) 인 경우는 존재하지 않아서 체크하지 않는 건가요??궁금해서 질문드립니다. 감사합니다.