묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
완탐-원복-그래프 정점 탐색 코드 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include<bits/stdc++.h> using namespace std; int visited[4]; vector<int> adj[4]; //** vector<int> v; void print(){ for(auto i:v)cout<<i<<" "; cout<<"\n"; } void go(int from){ visited[from]=1; // 색칠하려고 했는데, 만약 // 사이즈 체크는 겉에서 말고, 들어오고 나서 하는듯 // 1. 기저 조건 if(v.size()==3){ print(); v.pop_back(); int rear=v.back(); go(rear); } // 2. for(auto i:adj[from]){ if(visited[i])continue; v.push_back(i); go(i); } } int main() { // 양방향 간선을 가정한다 adj[0].push_back(1); adj[1].push_back(0); adj[1].push_back(2); adj[1].push_back(3); adj[2].push_back(1); adj[3].push_back(1); v.push_back(0); go(0); } 이건 정답 코드를 보기 전에 제가 작성한 코드인데 어떤 문제점이 존재하는지 알 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 맞왜틀 질문입니다
안녕하세요, 1213번(1-K번) 맞왜틀 질문이 있어 질문 올립니다.마땅한 반례를 제 시간에 떠올리지 못해, 반례에 대한 힌트를 얻을 수 있을까 하여 질문 드립니다. 코드는 아래와 같습니다.http://boj.kr/556e9aa7a033414a80ac86819811d8a7입력된 string의 각 알파벳을 Key, 각 알파벳 개수를 value로 하는 map을 이용하여 풀어보려 했습니다.입력된 string의 각 알파벳 및 알파벳 개수를 _nr_char이라는 map에 저장한 후,_nr_char의 value가 홀수인 것(_odd_nr로 count합니다)이 2개 이상이면 I'm Sorry Hansoo를 출력하게 했고,홀수인 것이 1개라면 29번 라인으로,홀수인 것이 없다면 56번 라인으로 분기하여 처리합니다. 29번 라인은 _nr_char에 저장된 알파벳을 output2란 string에 차례대로 저장한 후,홀수 알파벳을 output2에 마지막으로 push_back으로 저장합니다.이후 output2를 대칭복사한 output를 출력합니다. 56번 라인은 _nr_char에 저장된 알파벳을 output2란 string에 차례대로 저장한 후,output2를 대칭복사한 output를 출력합니다. string을 다루는 부분이 다소 정돈되지 못하여 이해가 어려우실 수 있을 것 같습니다. 양해 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
a.cpp로 바꾸고 명령어 실행해도 안되네요ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문이 있습니다.
http://boj.kr/591d5d47a8284b3ea0f2cc2424f2796a저는 이렇게 풀었는데... 이번에도 역시 반례가.... 모르겠습니다. ㅠㅠ 혹시 시간 괜찮으시면 답변하나 부탁드려도 될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 1213 펠린드롬 질문있습니다.
http://boj.kr/d01d9b144442469eae778012296cc3e1해당 코드가 반례가 뭔지 도저히 모르겠습니다.번거로우시겠지만 한번 부탁드려도 될까요?
-
미해결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번 으로 나와서 질문드립니다!