묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결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 < 다음 정점 거리) 인 경우는 존재하지 않아서 체크하지 않는 건가요??궁금해서 질문드립니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-C 실행 시간 질문드립니다.
안녕하세요 선생님, 강의 잘 듣고 있습니다!제가 해당 문제를 먼저 풀고, 선생님의 모범 답안과 비교해서 다시 보고 있는데, 선생님의 답안 실행 시간의 경우 80ms인데, 제 풀이의 경우 500ms가 나와서 어떤 부분에서 이렇게 시간이 많이 걸리는지 질문 드립니다.제가 생각했을 때, 제 풀이는 bfs를 사용했고, 선생님의 풀이는 dfs를 사용한 것이 가장 큰 차이인데, 관련해서 bfs를 이용해 문제를 푼 분의 비슷한 질문과 선생님의 답변을 읽어 봤는데, 제 코드가 특히 더 느려서 질문 드립니다.감사합니다.http://boj.kr/64d1e109011644a499285cf8df6422a5
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A 문제 풀이 질문있습니다.
강사님 안녕하세요,4-A 문제에 대해 최대한 bitmask 사용하여 문제를 풀었는데,문제 pass 를 못하여 작성한 코드 질문드립니다.http://boj.kr/c8c4f304baa94765a7b205e181eadac7문제 풀이 강의에서는 식재료의 index 자체를 vector<int> v 에 담는 것으로 풀이하셨는데저는 식재료 index 정보를 담고있는 int 형 변수 자체를 최종 결과 출력까지 가져가서 켜진 bit 에 대한 index 를 출력하도록 구현했습니다.min_price 갱신로직도, 가격이 갱신되는 경우. 그리고, 동일 가격이 발생한 경우에 식재료 index 갱신하는 경우를 case 분류하여 작성하였습니다. bitmask 부분이 틀린 것 같지는 않는데, 8% 에서 계속 오류가 나오네요 ㅠㅠ무엇이 틀린 것인지 감이 오질 않습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
비트마스킹 연산자 "1의 보수" 영문 표기법
안녕하세요,비트마스킹 개념 #2-4 비트연산자의 기초에서1의 보수 영문 표기가 one's completion 이라고 하셨는데one's complement 가 맞는 표현인 것 같습니다 ㅎㅎ