묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 1213 문제 질문
안녕하세요 큰돌님! 강의 잘 듣고 있습니다. 저는 map을 이용하여 풀이를 진행하였는데결과를 배열의 앞뒤로 붙이는 식으로 진행하였습니다. 예제 케이스 같은 경우에는 잘 동작하는데, 실패가 계속 뜹니다.. ㅠhttp://boj.kr/0d0a5bcd94d347e1889351512f3bee6b혼자 힘으로는 어느 부분이 틀린건지 찾기가 쉽지 않네요.. ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
속도 관련 질문
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);랑ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);가 아예 동일할까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문있습니다.
왜 시간복잡도가 O(N * (N + M)) 이해가 되지 않습니다.그리고 최대시간복잡도가 10억인데 그냥 저 시간복잡도로 풀어도 왜 풀리는걸까요..? 보통 1억이 제한으로 생각하라고 아는데 이건 그냥 케바케인건가요..? 시험에서 일단은 무작정 기본으로 풀고 안되면 다른 방법을 생각해야되는걸까요.. 맨처음에 어떻게 접근하고 시간을 줄일 수 있는지 궁금합니다ㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
3:30 참조자 리턴
3:30 에서 operator chaining을 위해서 리턴 타입을 참조 타입으로 한다고 설명해주셨는데, 리턴 타입을 값 타입으로 해도 chaning이 잘 되던데 왜 참조 타입으로 하는건가요?[값 리턴]Position operator=(int a){_x = a;_y = a;return *this;} [참조 리턴]Position& operator=(int a){_x = a;_y = a;return *this;} 위 두 경우가 똑같이 operator chaining잘 됩니다. 만약, 위 두 가지 경우가 차이가 없다면 복사 비용을 줄이기 위해서 참조 타입을 반환하는 건가요?(대입 연산자 뿐만아니라, 단항연산자도 똑같이 리턴 타입을 값타입으로 했을 때 operator chaining이 잘 됐었습니다.)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A, bfs dfs 로직에 대한 질문
안녕하세요, 선생님. 이번 문제와 bfs, dfs 전반적 로직 관련해서 질문있습니다!!일단 이번 문제 정답 코드는 다음과 같습니다.http://boj.kr/f3c01a8b5af34478acc8344f21094f9a크게 바뀐거 없이, continue 조건문에서 범위체크하는 조건을 한번 빼봤습니다. 그런데도 정답에는 문제가 없더라구요.bfs든 dfs든 시작점에서 시작해서 상 우 하 좌 순으로 돌면서 탐색을 진행할텐데, 항상 경우에 따라 이차원배열의 모서리부근에서는 out of bound위험이 있고,이걸 그냥 복잡하게 고민안하고, 위험을 최소화 하기 위해서!bound -> continue 조건을 깔고 들어가는걸로 이해하고있습니다. 그런데, 위와같은 코드의 경우에는, 조건을 안걸면 분명히(-1, 0) 다시말해 out of bound 오류가 발생해야 할거같은데, 정답처리되는 이유를 잘 모르겠습니다. +) 또한, 강의중에 꼭 범위체크 뒤에 ||로 map에서 0이면 continue를 걸어야 한다고 하셨는데,이 이유도 왜 그런지 잘 모르겠습니다. 저희가 항상 시작할 때,map 전체를 0으로 초기화.조건에 맞게 map만들기.dfs/bfs이런식으로 진행되는데, 범위를 벗어난 지역은 어차피 visited도 false, 맵에도 0으로 표시되는게 보장될텐데,순서를 바꾼다고 해서 문제가 발생하는 일이 일어나나요?=> 이게 범위 관련 이슈때문에 범위를 맨 앞으로 빼야할것 같다는 생각이 들었습니다... 두번째로, bfs dfs 구현상 질문입니다.문제들의 경우에 따라서, if ~~ continue;if ~~ continue를 두번씩 사용하시는 경우를 봤습니다.(이번문제도 그렇습니다)이건 continue의 특성상, 아래라인에 else if를 안걸어도(컴파일러가 알아서 해줄지는 모르겠지만)else if를 거는듯한 최적화의 효과를 얻을 수 있겠다고 보이긴 합니다. 그런데, 저런식으로 continue문을 여러줄에 걸쳐서 쓴다는건,if ~~~ continue; (1조건)if ~~~ continue; (2조건)이렇게 1조건으로 필터링 하고, 1조건에 안걸리는 (여집합) 대상들에 대해 2차적인 필터를 하는걸로 생각이 드는데,"이제부터 항상 continue관련 조건은 다 ||로 엮어서 한 if문으로 처리한다" 라고 일반화하고 진행해도 괜찮을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-N 질문있습니다.
http://boj.kr/907e9f4775da48d8bb4c13e5d16d0c21결국 그럼 중앙이 루트좌우 나눠서 그곳의 중앙이 또 parent 이걸 무한히 반복한다고 생각햇고 BFS를 레벨별로 묶어서 처음에는 root를그다음에는 root에 연결된 자식을그 다음에는 그것에 연결된 자식들을 출력하는 방식으로 풀었습니다. 하지만 출력 초과가 나와서 어떤 문제가 있는지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제 번호를 어디서 찾나요?
다른 강의들은 시작할때 백준 몇번인지 알려주 셨는데 이번 강의는 없는 것 같아서요. 각 강의가 몇번 문제인지 작성된 곳이 있나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문있습니다.
http://boj.kr/027eca9de7df4d9ebd1326b9d1fde13b 저는 이런식으로 풀었습니다. 그런데 제가 틀린 문제는 복습을 하고 있는데 이렇게 큰돌님과 다르게 푼 문제가 있다면 그런 문제들도 복습을 해주는게 좋을까요? 아니면 그냥 맞았다면 넘어가는게 나을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dfs관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.dfs를 돌릴때 왼쪽부터 탐색하는 이유가 인접리스트를 구성할때 왼쪽의 노드값을 먼저 넣어줬기 때문이라고 추론을 해봤습니다. 그렇다면 인접리스트를 구성할때 순서를 달리하면 (예를 들어 1:: 3,2처럼) dfs가 제대로 작동을 못하지 않습니까? 그럼 인접리스트를 구성할때 어떤 로직에 입각해서 인접 리스트를 작성해야하나요.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 질문ㅇ드립니다
결국 메인 로직은 BFS를 돌려서 백조끼리 만날수있나 검사한다.얼음을 만나면 얼음 위치를 저장한다얼음을 지운다.얼음을 만나면 얼음위치를 저장한다.인거 같은데 queue를 2개쓰지 않고 그냥 temp 큐 한개만 얼음을 담는 용도로 사용해도 되지않나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C 질문있습니다 :)
안녕하세요 선생님 🙂 문제를 풀다가 정신이 나가버릴거 같은 느낌은 이 문제풀면서 처음 겪는거 같습니다.. 어떻게든 풀려고 하루종일 박치기를 해봐도 어질어질하네요..ㅠㅠ 인접행렬을 만들어주는거는 예전에 배웠던 적이 있기 때문에 무리없이 이해했습니다. for(int i = 1; i < (1 << n) - 1; i++) 모든 켜져있는 경우를 체크하려면 for(int i = 1; i <= (1 << n) - 1; i++)이 되어야하지 않나요? n이 6일 경우에, 111111을 빼고 111110까지만 체크하는 이유를 모르겠습니다. 이렇게 할 경우에 access violation이 뜨는데요, 도대체 뭘까요?? ㅠㅠ 비트가 켜져있는 모든 경우를 체크하여 켜져있을 경우에 comp배열에 1을 저장하고, 그 값이 dfs함수에서 두번째 파라미터와 같다면 재귀를 돌리고, 재귀를 돌린 값으로 누적을 시키신건 알겠습니다. 근데 이 comp배열이 어떤 아이디어로 생성된 배열인지 모르겠습니다.. 그동안 문제들을 풀면서 몇 번의 벽이 느껴졌었지만 항상 시간을 박으면서 극복해왔습니다. 근데 이 문제는 도저히 해결이 안될거 같은 벽처럼 느껴지네요.. 선생님의 도움이 절실히 필요합니다 흑흑..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 질문있습니다
http://boj.kr/dd6737fde63945129d78f247d40f557d같은 로직으로 풀었습니다. 차이점하나는 강사님은 flag로 검사를 하였고저는 바로 turn을 출력하고 끝낸것인데 왜 제 방식이 틀렸는지 이해가 되지 않습니다.
-
해결됨C개발자를 위한 최소한의 C++
쓸데없지만 질문드리고싶습니다
안녕하세요. 항상 양질의 강의 감사합니다.link 오류시, 컴파일러가 맹글링 해놓은 함수의 진짜 이름이 출력되고, 이러한 오류를 dll 을 사용함에 있어서 자주 볼 수 있다고 말씀하셨는데 리눅스에서 라이브러리든 실행파일이든 용량을 조금이나마 줄이기위해 stip??? 명령어를 사용해 디버깅 심볼을 없앨 수 있었던 것으로 기억합니다.근데, 디버깅 심볼에는 변수, 함수이름, 소스코드 줄 번호등 다양한 정보가 들어가 있다고 배웠었는데, 해당 명령어로 디버깅 심볼을 없애버린 라이브러리 파일을 사용하여 만든 소스파일을 빌드하는 경우에서, 링크 오류가 나게되면 어떠한 현상이 이뤄지는지 궁금합니다
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
9:11 b에는 a이 주소값이 들어갔다고 하는데 *b의 값이 왜 a랑 같은 값이 나오나요?
9:11 b에는 a이 주소값이 들어갔다고 하는데 *b의 값이 왜 a랑 같은 값이 나오나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-i 문제 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 1-i에 1165 가 맞나요? 백준 홈페이지에서 1165 는 단어퍼즐이고 포켓몬 마스터는 9987번 으로 나와서 질문드립니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-B 질문있습니다 :)
안녕하세요 선생님 🙂이번 문제 진짜 어려운 문제인거 같더라구요;; ㅎㅎ 문제를 풀면서 몇가지 풀리지 않는 의문이 있어서 질문 드립니다. http://boj.kr/2f42a7b2bc644e2e8db2ab8729507b5d 선생님께서는 go함수의 here = n + 1인 경우에 함수를 리턴시키셨는데요, n = 3일 경우에 go(1)부터 시작하여 go(4)까지 재귀를 돌리면 총 8번의 go(4)를 사용합니다.하지만, go함수의 리턴시키는 조건이 here = n일 경우에는 go(3)까지 총 4번의 go(3)을 사용합니다. 입력 조건의 n이 3일 경우에 3번만 돌리면 된다고 생각하는데요, 경우의 수를 추가로 넣어주신 이유가 궁금합니다. 추가로, 뒷면이 위를 향하도록 놓인 동전의 개수를 2개보다 작게 만들 수 없다라는 조건이 있는데요, 이 처리를 안해도 되는 이유가 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코드에 어떤 오류가 있는걸까요..?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.위 사진처럼 000과 001 로 이루어진 문자열을 atoi를 이용하여 변환 후 사용하였을 때 다음과 같이 출력되는 것을 보고 이를 사용해서 문제를 풀려고 시도하였고 코드는 다음과 같습니다.#include <bits/stdc++.h> using namespace std; //2870 - 수학 숙제 int n; string s; vector<int> v; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n; for(int i=0;i<n;i++){ string tmp=""; cin>>s; for(char c:s){ if(c>='a' && c<='z'){ if(tmp!=""){ int num = atoi(tmp.c_str()); v.push_back(num); tmp=""; } continue; } tmp+=c; } if( tmp!=""){ int num = atoi(tmp.c_str()); v.push_back(num); tmp=""; } } sort(v.begin(), v.end()); for(int i:v) cout<<i<<'\n'; return 0; }제가 사용한 로직은 문자열을 입력 받고 알파벳이 나오기 전까지 숫자를 tmp라는 string 변수 저장 후 알파벳이 나오면 해당 tmp를 atoi를 사용하여 integer로 변환하고 vector에 push하도록 하였습니다.따라서 해당 vector에는 integer 값으로 이루어져있기 때문에 기존의 sort 함수를 그대로 사용해도 된다고 생각했고 이를 토대로 코드를 작성하고 출력까지 진행하였습니다. 테스트 케이스들에 대해서는 전부 알맞게 출력되었고 제출을 하였는데 틀렸다고 출력됩니다. 어떤 부분에서 혹은 어떤 반례가 존재하여 해당 코드가 잘못되었는지 알 수 있을까요? 좋은 강의 항상 감사드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
개념 교안 파일 질문드립니다
안녕하세요, 큰돌님2주차 진행 중인 학생입니다. 좋은 강의 덕분에 즐겁게 코테 공부하고 있습니다!다름이 아니라, 개념 교안 pdf파일은 2주차까지 밖에 없는 건지 궁금합니다.아니면 해당 주차의 강의를 수강할 시 교안 파일을 다운 받을 수 있게 활성화되는 걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 런타임에러 확인
안녕하세요 강사님.제가 작성한 코드가 예제는 맞게 나오는데, 백준에 제출하면 런타임 에러가 나옵니다. 한 번 확인해 보시렵니까!?http://boj.kr/909851fccc5b446db825a1bb6d1df5fd감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-f 코드 질문드립니다!
http://boj.kr/173bd797559a4a5d88f48a6dee8c0d05요렇게 풀었는데 런타임 에러가 나서 이유가 궁금해서 질문드립니다!cout으로 디버깅해봤는데 위 코드에서 inputWord 는 길이가 출력되지만 rot13Word 는 0 으로 출력됩니다!