안녕하세요. 11655 번 문제 풀이에서 큰돌님은 입력 받은 변수 s 의 값을 덮어써서 결과를 출력하셨는데, 저는 아래처럼 새로운 변수에 담에서 출력했습니다. 이때, 공간 복잡도가 늘어나게 되는건가요? string s, res; int main() { getline(cin, s); for (char c: s) { if (c >= 97 && c <= 122) { if (c + 13 > 122) res += c + 13 - 26; else res += c + 13; } else if (c >= 65 && c <= 90) { if (c + 13 > 90) res += c + 13 - 26; else res += c + 13; } else { res += c; } } cout << res; return 0; }
문제는 BFS로 해서 잘풀었습니다 그런데 DFS로 해결하신거 듣고 궁금증이 들어 질문드립니다. DFS로 풀게되면 K가 최대인 2500일 경우 함수 깊이가 2500이 되지 않는건지 궁굼합니다. 분명 저는 스택에 제한이 있을거라고 생각하고 있는데 코딩테스트에서 DFS로 풀수 있는 함수콜 횟수 maximum 값을 얼마로 고려해야 하나요?
1-N: 1629 곱셈 문제 질문 드립니다. 테스트 코드는 잘 돌아가는 데 문제가 계속 틀렸다고 해서 질문 드립니다. 하기에 작성한 코드 링크 남겨두었습니다. 항상 좋은 가르침을 주셔서 감사합니다. http://boj.kr/17ebfc4a096343a6a592d0c3a16aa0a0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 주사위 윷놀이 문제 보고서 http://boj.kr/7a485f4fb46842189dc2ce91d1db7c91 이렇게 생각을 했는데, 처음 입력받은 이동 거리를 각 말로 이동해보고, 이동 장소에 가장 높은 숫자가 있는 말을 이동하려는 그런 방식으로 꾸미려 하던 중에 구현을 어떻게 해야할지 잘 떠오르지 않아 강의를 보았는데, 완전 다른 논리로 푸시는 걸 보고, 제가 생각한 방식에 대해 강사님의 생각을 들어보고 싶습니다. (아직 구현을 하다 말아서 코드가 다 있지 않은 점 양해 부탁드립니다..)
안녕하세요. 큰돌 선생님!! 강의 잘듣고 있는 학생입니다! 다름이 아니라, 선생님께서 알려주신 내용들을 바탕으로 저의 식대로 한번 짜보았는데요. 아래 코드를 백준에서 돌리면 결과는 잘 나오는데 틀렸다고 나오더라구요. 어디서 틀린건지 도저히 모르겠어서 질문드립니다. 코드는 선생님이 알려주신 내용 바탕으로 짠거라서 바로 아실꺼라고 생각합니다!! 답변 부탁드리겠습니다. 감사합니다. /* 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 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; }
위임 생성자가 매개변수에 값을 입력 안했을 때, 클래스를 다시 참조해서 사용자가 입력한 값을 인스턴스에서 출력하는 것이잖아요?? 가령, Student(const string& name_in) : Student(0, name_in) {} 와 같이요. 그런데 잘 생각해보면 디폴트 매개변수 생성자도 매개변수에 미리 값을 설정해주고, 인스턴스 인자에 값을 안넣어주면 디폴트값을 출력하는 것도 같은 원리인데 차이점이 무엇인가요??
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 모두 통과하기도 했고 논리적으로 오류가 없다고 생각했는데 틀렸다고 하여 반례 질문드립니다! 설명이 너무 장황했다면 죄송합니다ㅜ
안녕하세요 선생님, 매번 선생님 정답코드 보기전에 먼저 충분히 코딩해보고 안되면 정답보는 식으로 수업을 듣고있습니다. 이번 낚시왕 문제같은경우 상어가 움직이는 로직을 좀더 신경써서 나름 코딩을 했고, Test Case와 개시판 모든 반례들을 다 통과했는데, 제출하자마자 바로 틀렸다고 나오네요.. 제가 무엇을 놓치고 있는지 알려주시면 감사합니다. 선생님이 강의해주신 논리가 비슷한거같은데 제 코드는 제대로 계산하지 못한 반례가 있을까요..? http://boj.kr/504e729dba00420a807fdcc3a57d2fde 항상 좋은 강의 감사합니다 ㅠㅜ
p.108 Array의 요소 수정하기 함수에 매개변수로 전달할 때, 배열은 왜 int &a[] 형태가 아닌 int *a 로 전달해야하나요? 배열을 매개변수로 전달할때, int a[] | int a[size] | int *a 이렇게 세 가지 형태로 전달해서 수정이 가능하다면, 결국 배열은 참조로 전달 해야지만 값을 변경할 수 있는 다른 타입들과는 다르게 매개변수로 주어졌을 때 항상 값이 변할 수 밖에 없는건가요?
while (true) { int* ptr = new int; cout << ptr << endl; } // 메모리가 새고 있는 지 확인법 // 1. Task manager에서 메모리 사용량이 무한히 올라가면 메모리가 새고 있는 것 // 2. ..? 메모리가 새고 있는 지 확인하는 방법은 2가지가 있다고 하셨는데 제가 캐치를 못했는지 하나밖에 모르겠어요ㅠㅠ 다른 방법은 무엇이 있나요?
강의에서는 코드 작성 후 실행을 누르면 exe파일이 생성된 경로로 cmd창에서 이동 후 명령어로 코드를 실행시키는데 저는 실행을 눌러도 exe파일이 생성이 안되고 exe.recipe라는 파일만 보이는데 혹시 설정을 다르게 해야하나요? 그리고 혹시 컴파일과 빌드의 용어의 차이점을 설명해주실수 있으실까요? 강의에서는 cmd창을 비쥬얼스튜디오용? cmd창을 사용하는것 같은데 그냥 윈도우에서 cmd검색시 나오는 기본 명령프롬프트와는 어떻게 다른건가요?
안녕하십니까, 큰돌님 코딩 테스트 강의를 수강하고 있는 박찬영 수강생입니다. 큰돌님 1-N: 1629 곱셈 문제 질문 드립니다. 테스트 코드는 잘 돌아가는 데 문제가 계속 틀렸다고 해서 질문 드립니다. 하기에 작성한 코드 링크 남겨두었습니다. https://www.acmicpc.net/submit/1629/54973440 항상 좋은 가르침을 주셔서 감사합니다.
안녕하세요, 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개 방향의 간선에 대해서만 정의한 이유가 있는지 궁금합니다.