묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
논리질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 주사위 윷놀이 문제 보고서http://boj.kr/7a485f4fb46842189dc2ce91d1db7c91 이렇게 생각을 했는데, 처음 입력받은 이동 거리를 각 말로 이동해보고, 이동 장소에 가장 높은 숫자가 있는 말을 이동하려는 그런 방식으로 꾸미려 하던 중에 구현을 어떻게 해야할지 잘 떠오르지 않아 강의를 보았는데, 완전 다른 논리로 푸시는 걸 보고, 제가 생각한 방식에 대해 강사님의 생각을 들어보고 싶습니다. (아직 구현을 하다 말아서 코드가 다 있지 않은 점 양해 부탁드립니다..)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 일곱난쟁이 문제 질문있습니다!!
안녕하세요. 큰돌 선생님!!강의 잘듣고 있는 학생입니다! 다름이 아니라, 선생님께서 알려주신 내용들을 바탕으로 저의 식대로 한번 짜보았는데요.아래 코드를 백준에서 돌리면 결과는 잘 나오는데 틀렸다고 나오더라구요. 어디서 틀린건지 도저히 모르겠어서 질문드립니다. 코드는 선생님이 알려주신 내용 바탕으로 짠거라서 바로 아실꺼라고 생각합니다!! 답변 부탁드리겠습니다. 감사합니다. /*문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.입력아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.출력일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을 수 없는 경우는 없다.*/ #include<bits/stdc++.h> using namespace std; vector<int> height; int sum_height = 0; const int total_height = 100; //난쟁이수, 일곱난쟁이키의 합 void printV(vector<int> &v) { vector<int> ::iterator iter; for(iter = v.begin(); iter != v.end(); iter++) { cout << *iter << "\n"; } } int main() { for(int i = 0; i < 9; i++) //난쟁이수는 9명 { int k; cin >> k; sum_height += k; height.push_back(k); } //cout << sum_height << endl; sort(height.begin(), height.end(), less<int>()); //printV(height); for(int i = 0; i < 9; i++) //난쟁이수는 9명 { for (int j = 0; j < i; j++) { if(height[i]+ height[j] == sum_height - total_height) { // cout << i << " "<< j<< " " << sum_height - total_height << endl;// cout << height[i] << " " << height[j] << endl; height.erase(height.begin() + i); height.erase(height.begin() + j); break; } } } printV(height); return 0; }
-
미해결홍정모의 따라하며 배우는 C++
안녕하세요 위임 생성자 강의를 듣는 도중에 궁금한 점이 생겼습니다.
위임 생성자가 매개변수에 값을 입력 안했을 때, 클래스를 다시 참조해서 사용자가 입력한 값을 인스턴스에서 출력하는 것이잖아요?? 가령, Student(const string& name_in) : Student(0, name_in) {} 와 같이요.그런데 잘 생각해보면 디폴트 매개변수 생성자도 매개변수에 미리 값을 설정해주고, 인스턴스 인자에 값을 안넣어주면 디폴트값을 출력하는 것도 같은 원리인데 차이점이 무엇인가요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A 반례를 알고 싶습니다
http://boj.kr/2ee36f4f84574c92a5029deb708602c6일반 가정 집과 치킨 집 좌표를 구해두고 거리를 구한 다음 y에는 가정집 기준, x에는 치킨집 기준의 거리를 2차원 vector d에 넣어줬습니다.최소값을 구해야하기 때문에 같은 x의 y값( 즉, 치킨집을 기준으로 모든 집과의 거리)의 합을 구하여 v vector에 넣었습니다. v는 <치킨집번호, 총거리의합>으로 담았습니다.--> 이제 v[1].first에는 1번 치킨집이라는 정보, v[1].second에는 1번 치킨집과 모든 집과의 거리의 합이 들어가게 됩니다.v를 v.second(치킨집과 각 집의 총거리의 합)를 비교하는 함수로 sort하고 m만큼 반복(입력한 남아 있을 최대 치킨 집의 수) 가정집과 first(치킨집번호)에 해당하는 거리를 min 함수를 이용하여 최소값을 구한 뒤 ret에 더해줍니다.TC 모두 통과하기도 했고 논리적으로 오류가 없다고 생각했는데 틀렸다고 하여 반례 질문드립니다! 설명이 너무 장황했다면 죄송합니다ㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 낚시왕 질문있습니다..
안녕하세요 선생님,매번 선생님 정답코드 보기전에 먼저 충분히 코딩해보고 안되면 정답보는 식으로 수업을 듣고있습니다.이번 낚시왕 문제같은경우 상어가 움직이는 로직을 좀더 신경써서 나름 코딩을 했고, Test Case와 개시판 모든 반례들을 다 통과했는데, 제출하자마자 바로 틀렸다고 나오네요..제가 무엇을 놓치고 있는지 알려주시면 감사합니다.선생님이 강의해주신 논리가 비슷한거같은데 제 코드는 제대로 계산하지 못한 반례가 있을까요..?http://boj.kr/504e729dba00420a807fdcc3a57d2fde 항상 좋은 강의 감사합니다 ㅠㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문 있습니다.
제가 수업을 듣다가 중간중간 출력을 찍어보면서 담기는 내용을 좀 파악하고 있는데요,,코드에서 adj[54] 배열에 데이터가 담기는 과정을 출력해보고 싶은데 어떻게 코드를 작성해야 adj 배열을 출력해볼수 있는지 궁금합니다.
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
코드가 이해가 안되는 것이 아니라 수학적인 원리를 모르고있습니다.왜 15-3 = 1212%2 == 012/2 = 61+6, 2+6 즉 7,8로 가능하다는 결론이 나오는 수학적인 원리가 무엇인가요?그냥 공식이 그런것이니 외우면 되는 것일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
매개변수 값의 수정
p.108 Array의 요소 수정하기함수에 매개변수로 전달할 때, 배열은 왜 int &a[] 형태가 아닌 int *a 로 전달해야하나요?배열을 매개변수로 전달할때,int a[] | int a[size] | int *a이렇게 세 가지 형태로 전달해서 수정이 가능하다면, 결국 배열은 참조로 전달 해야지만 값을 변경할 수 있는 다른 타입들과는 다르게 매개변수로 주어졌을 때 항상 값이 변할 수 밖에 없는건가요?
-
미해결홍정모의 따라하며 배우는 C++
메모리가 새고 있는 지 확인하는 방법
while (true) { int* ptr = new int; cout << ptr << endl; } // 메모리가 새고 있는 지 확인법 // 1. Task manager에서 메모리 사용량이 무한히 올라가면 메모리가 새고 있는 것 // 2. ..? 메모리가 새고 있는 지 확인하는 방법은 2가지가 있다고 하셨는데 제가 캐치를 못했는지 하나밖에 모르겠어요ㅠㅠ 다른 방법은 무엇이 있나요?
-
미해결홍정모의 따라하며 배우는 C++
delete 후 주소값
int *ptr = new int (7); cout << ptr << endl; // 000001879A455E70 cout << *ptr << endl; // 7delete ptr; cout << ptr << endl; //0000000000008123 // 강의 내에서는 위의 ptr과 아래의 ptr이 같은 주소값으로 출력되는데 저는 안그렇습니다. 왜이런걸까요?
-
미해결홍정모의 따라하며 배우는 C++
컴파일시 exe 파일이 생성이 안되네요
강의에서는 코드 작성 후 실행을 누르면 exe파일이 생성된 경로로 cmd창에서 이동 후 명령어로 코드를 실행시키는데저는 실행을 눌러도 exe파일이 생성이 안되고 exe.recipe라는 파일만 보이는데 혹시 설정을 다르게 해야하나요?그리고 혹시 컴파일과 빌드의 용어의 차이점을 설명해주실수 있으실까요? 강의에서는 cmd창을 비쥬얼스튜디오용? cmd창을 사용하는것 같은데 그냥 윈도우에서 cmd검색시 나오는 기본 명령프롬프트와는 어떻게 다른건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1 - N : 1629 문제 질문
안녕하십니까, 큰돌님 코딩 테스트 강의를 수강하고 있는 박찬영 수강생입니다.큰돌님1-N: 1629 곱셈 문제 질문 드립니다.테스트 코드는 잘 돌아가는 데 문제가 계속 틀렸다고 해서 질문 드립니다. 하기에 작성한 코드 링크 남겨두었습니다.https://www.acmicpc.net/submit/1629/54973440항상 좋은 가르침을 주셔서 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A 문제 질문
http://boj.kr/30fb42b6aa1946dea6fb4494acefe8d0해당 풀이가 틀린 이유를 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2주차 개념 #9 깊이우선탐색 예제 질문 입니다.
안녕하세요,2주차 개념 #9 깊이 우선 탐색 예제 구현하면서인접리스트(벡터로) 구현시 각 정점의 인접요소를 정의하는 부분이 main 함수에 있는데요저는 모든 간선(4개)을 양방향으로 아래와 같이 입력하였는데adj[1].push_back(2); adj[1].push_back(3); adj[2].push_back(1); adj[2].push_back(4); adj[2].push_back(5); adj[3].push_back(1); adj[4].push_back(2); adj[5].push_back(5);예제에서는 일부는 단방향으로만 입력이 되어있더라구요adj[1].push_back(2); adj[1].push_back(3); adj[2].push_back(4); adj[4].push_back(2); adj[2].push_back(5);DFS 특성상 Depth가 더 깊은 요소에 접근이 되려면 부모노드를 거칠 수 밖에 없긴한데 5개 방향의 간선에 대해서만 정의한 이유가 있는지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코딩테스트나 알고리즘 대회 관련 질문입니다.
안녕하세요! 코테 준비가 처음이라 궁금한 점이 있어서 질문합니다. bits/stdc++.h 이 헤더파일을 넣고 하라고 하셨는데요, 시험볼때도 이렇게 작성해도 되나요?대회나 시험을 볼 때는 시험보는 페이지에서 바로 코드를 작성해야 하나요? 아니면 제 노트북에 있는 vscode 나 devC++ 을 사용해도 되는건가요?처음 준비하다 보니 기본적인 부분도 모르는게 많네요ㅠㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 관련 질문합니다!
배열을 포인터 변수로 받을 때 포인터 변수는 배열의 시작 주소를 갖고 있는 변수로 알고 있습니다! 예를 들어 배열의 시작 주소를 담고 있는 포인터 변수가 *str이라면근데 함수 내부에서 배열에 인덱스 값에 접근할 때 str[i] 접근하는데 포인터 변수를 어떻게 배열처럼 사용할 수 있는지 그 원리를 잘 모르겠습니다..!
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문드립니다.
연산자 오버로딩 하는 부분에서 const Loc &b 여기서 b는 그냥 임의로 구조체 이름을 만드신건가요? 왜 b로 만드셨는지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
10808 알파벳 개수 질문있습니다
로직 자체는 쉽게 생각하고 강의도 이해할수 있었는데 전역변수와 지역변수에 따라 결과다 달라 왜 그런지 알고싶습니다 #include<bits/stdc++.h>using namespace std;typedef long long ll; //int cnt[26];//string str;int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int cnt[26]; string str; cin >> str; for(char c : str){ cnt[c-'a']++; } for(int i = 0 ; i < 26; i++) cout << cnt[i] << " "; return 0;}위 코드처럼 지역변수로 배열과 str을 선언하면 결과가이렇게 나옵니다. 반대로 전역변수로 선언하면 답이 잘 나옵니다. 어떤 이유인지 알수 있을까요?그리고 long long 타입을 쓰는곳이 없는데 typedef long long ll;을 왜 해주는지도 궁금합니다!감사합니다
-
미해결홍정모의 따라하며 배우는 C++
문자열내의 개행문자 출력방법
위 코드를 실행시 아래와 같은 결과가 나왔습니다.강의 예제처럼 n_name의 값은 10이 나옵니다.1,2는 예상대로 나왔는데, 3,4,5는 강의예제와 달리 개행문자가 출력이 되지 않았습니다.visual studio 2022 community를 사용하였는데, 개행문자는 출력하지 않는 옵션이 있는 건가요?
-
미해결홍정모의 따라하며 배우는 C++
for (const auto &number : fibonacci), &유무의 차이점?
int main(){ int fibonacci[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 }; for (auto& number : fibonacci) number *= 10; //for (const auto number : fibonacci) for (const auto &number : fibonacci) cout << number << " "; // -------1) cout << endl; return 0;}1) 라인에서 number 값을 변경없이 출력만 하고 있습니다.이 경우 for문에서 number와 &number의 차이가 있을까요? 두 경우 모두 fibonacci 배열의 값을 변경하지 않으면 그냥 number를 쓰는 것이 나을까요?