안녕하세요! 문제 해설 : http://boj.kr/db0d13a9155748f38feda4624064efd9 에서, move함수나 ismal함수에 '인덱스가 100이면' 이라는 조건이 있는데 이 부분이 잘 이해가 안됩니다. ㅜㅜ. 말이 윳놀이 판에서 통과한 경우를 의미하신건가요?? 만약 그렇다면, 다른 값이 아니라 100이라고 주신 이유가 있나요? 감사합니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 실제 코딩테스트에서도 이렇게 수학적 아이디어를 사용한 문제들이 자주 출제되나요?
for(int i = 0; i < R; i++){ for(int j = 0; j < C; j++){ cin >> a[i][j]; } } 답안 코드에서 입력을 받을 때 사용하신 코드입니다. cin은 개행문자 이전까지 입력받는 것으로 알고있는데, char 형 배열에 사용될 때는 다른 방식으로 작동하는 건가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강사님, 이 문제를 풀다가 maxN의 크기를 39로 정한 이유를 알고 싶어서 문의드립니다. 문제에서는 n이 충분히 클 때, 1 ≤ M ≤ 230-1 이라는 조건만 있는데요. 코딩테스트 풀 때, 이런 제한에서 max_N을 설정하는 것이 어려운데, 어떤 원리로 정하는지 알고 싶어요. 이와 별개로, 제가 코딩테스트 그동안 7여개 정도 풀었는데, 다 성적이 좋지 않더라고요...ㅜ - ㅜ 혹시 만약에, 추후 강의 보강이나 자료 업데이트 계획이 있으시다면, 코딩테스트 직전에 보면 좋을 정리 올려주시면 너무 좋을 것 같습니다.
맵을 이용해 key와 value 활용에 대해 궁금한점이 있어 질문남깁니다. 일단 맵 key요소는 중복이 안되는것으로 알고있습니다. ret_v[ret].push_back(v) 를 하게되면 ret이라는 키에 벡터를 넣는건데 만약 가격이 700짜리가 2개있다 치면 키가 충복이 되어 오류가 뜨는것이 아닌가요? 혹시 다른방법으로 vector<pair<int,vector<int>>> ret_v 이것으로도 구현이 가능한지 궁금합니다.
정수론의 22분 경의 문제가 이해가 안되어서 질문드립니다. 176~177 사이라는 조건에서는 176은 16으로 완전히 나누어떨어져서 16 + 소수(1) = 17은 이해했는데, 22분~ 즈음에 4같은 경우에는 2가 두번이라 4라는 뜻이 이해가 안됩니다. 176과 같은 논리면 4는 2로 나누어떨어지니 2가 나와야 되는거 아닌가 생각이 들어 질문드립니다. 위의 연장선으로 27분 즈음에 2^0 은 1 이니 8 2로 나누어지는 숫자들의 수 만큼 + 1*(8/2) 4로 나누어떨어지는 숫자들의 수 만큼 + 2*2 여기까지는 이해 8로 나누어떨어지는 숫자들의 수만큼은 + 4*1 여기서는 4*1 이 아니라 3*1 이 아닌지 1,2,4,8 이 약수가 되는데 1은 이미 처리 했으니 1은 제외해서 3 * 1 더해져야될 것 같은데 ㅠ 수학을 못해서 좀 어렵네요 답변주시면 감사하겠습니다.
올려주신 자료 04_RangeSearch02에서 void SearchByAge(void) 함수 마지막 부분 질문있습니다. SearchByAgeRange함수에서 동적할당한 주소를 리턴하고 void **pResult로 받았습니다. void** pResult = SearchByAgeRange(min, max, &cnt); USERDATA* pTmp = NULL; for (int i = 0; i < cnt; ++i) { pTmp = (USERDATA*)pResult[i]; printf("%d, %s, %s\n", pTmp->age, pTmp->name, pTmp->phone); } free(pResult); <----요부분입니다. 이제 해제를 해줘야 하는데요 free(pResult)를 한 번에 해도 괜찮은건가요? 아니면 for문 돌릴 때 free(pResult[i])로 해야하나요?
공간복잡도 질문있습니다. 1.최대 범위<-코딩테스트에서 이것만 보고 풀어라 2.메모리 제한 100,000만까지는 ok 을 두고 풀라고 하셨는데 https://www.acmicpc.net/problem/14502 이문제에서 최대범위인 (3 ≤ N, M ≤ 8) 3*8인 24까지 보고 풀면 되는건가요? 혹시 최대 범위도 제한이 있나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강사님 , 3시간 가량 이 문제를 붙잡아도 도저히 이해가 되지 않네요.. ㅜ - ㅜ 아래 코드에서 find_index 함수의 역할이 너무 어려워요. 왜 update(find~+1) 을 하는건지, find_index 함수는 뭘 출력하는건지 모르겠어요. v[i].second의 인덱스 출력은 아닌 것 같고, v[i].second의 개수도 아닌 것 같고... 강의를 3번 듣고, 구글링도 많이 해봤는데.. 혼자 계속 고민해봤자 답이 안나올 것 같아요. <아래 코드 출력값> -10 -10 10 10 -10 => 1 10 => 2 -10 => 1 10 => 2 ll ret = 0; cout << "\n" << v[0].second << " => " << find_index(v[0].second) << "\n"; update(find_index(v[0].second) + 1, 1); for (int i = 1; i < n; i++) { int idx = find_index(v[i].second) + 1; cout << "\n" << v[i].second << " => " << find_index(v[i].second) << "\n"; ret += 1LL * sum(idx); update(idx, 1); }
from collections import deque def levelorder(root): if root is None: return visited = [] q = deque() q.append(root) while q: cur_node = q.popleft() visited.append(cur_node.val) if cur_node.left: q.append(cur_node.left) if cur_node.right: q.append(cur_node.right) return visited levelorder 코드는 위와 같은데요. 여기서 q.append(root) 를 bfs 코드와 같이 사전에 queue = deque(root) 로 미리 넣어줘도 되지 않나요? 이렇게하면 오히려 q.append(root) 를 하는데 걸리는 런타임을 더 줄일 수 있을 것 같아서요
안녕하세요. 제가 순열이 아닌 방법으로 풀었는데 이렇게 풀어도 괜찮을지 궁금해서 질문드립니다. 시간 효율은 개선되었다고 판단되지만 메모리가 많이 낭비되는 것 같고 코드가 긴 것 같습니다. http://boj.kr/a908b9d0967c46b9bfa2fb0f545f6073 감사합니다.