안녕하세요 선생님 수업 열심히 듣고있습니다! http://boj.kr/44c2eee4e7d84583b105ede311497d38 선생님 코드에서 line 37~47까지 잘 이해가 되지 않아 질문드립니다. 문제를 어떻게 풀어야하는지에 대해서는 이해했습니다. 그래서 left, right로 나누는 것도 이해했고 tree_cnt, tree_sum으로 이전의 나무의 개수, 이전 나무들의 합을 구하는 것도 이해가 됐는데 왜 value++을 하는건가요? 현재 심는 나무의 값을 그대로 사용해야될 것 같은데.. 잘 이해가 안됩니다ㅠㅠ sum(tree_cnt, 1, value-1)에서 왜 value-1이 들어가는건가요? 제 생각에는 현재 위치까지를 파악해야하니까 i가 들어가야할 것 같은데...(물론 코드를 고쳐서 돌려보니 틀렸습니다) 잘 이해가 되지 않습니다... 비슷하게 다른 sum함수들의 인자에도 왜 max_n이 들어가는지 value + 1이 들어가는지 잘 모르겠습니다... 펜윅트리 너무 어렵네요... 강의 내용 반복해서듣고 외웠는데 정말 쉽지 않은 것 같습니다..ㅠㅠ 설명을 부탁드려도될까요?
안녕하세요 큰돌강사님!! 하나 궁금한게 있습니다... 앞서 완탐의 형태는 방문-재귀-원복의 형태로 이뤄진다고 알려주셨는데요. 이 문제에서는 파라미터로 plus , minus, mul, div 를 모두 넘겨주기 때문에 원복이 필요치 않은건가요?? 미리 감사드립니다:) - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/ea31d03e749244328d0e26de193f4b9c 이 코드를 제출하면 컴파일 에러나고, y1을 다른 글자로 바꾸면 제출이 되는데 왜 그런건지 궁금합니다!!
안녕하세요 스프링쿨러 입출력 예 answer가 잘못된건지, 제가 문제이해를 잘못한건지 하여 질문드립니다 입출력 예 3번째 예제에서 n=5, nums = {2, 0, 0, 0, 0, 2} 이고 답 answer은 -1로 기재되어 있습니다 nums[0] 과 nums[5] 모두 작동시켰을때 (-2,2), (3, 7)에 물을 줄 수 있어, nums[0]가 (0, 1, 2 )에 nums[5]가 (3, 4, 5) 에 물을 줄 수 있고 연결해보면 (0,5) 모든 잔디밭에 물을 줄 수 있어 답안이 2가 되어야 한다고 생각합니다 혹시 제가 잘 못 이해하고 있는건지, 답이 잘못 기재되어 있는건지 답변 부탁드립니다 감사합니다!
안녕하세요! 이 문제를 해결할 때 이전에 풀었던 치즈( https://www.acmicpc.net/problem/2636 ) 를 풀었던 방법으로 풀어서 해결했습니다. 풀이는 이러합니다. https://www.acmicpc.net/source/62963459 이런식으로 푸는 것이 좋은 방법(?)은 아닌지 궁금해서 질문드립니다. 감사합니다.
안녕하세요 큰돌님 몸은 괜찮으신지요 . 문제를 풀다가 index out of bound도 아닌 segmentation fault가 떠서 헤매고 있습니다. 코드 한 번 봐 주시면 감사하겠습니다. http://boj.kr/28b2fc7b2381489fb1ba98f2299c5906 range based for문에서 데이터를 추가해 이상한 값이 들어가 오류가 나는 거 였습니다. cpp에서 range based for문이 어떻게 실행되길래 이런 현상이 발생하나요? range based for에서는 수정도 되지 않던데 말이지요. reference를 읽어도 모르겠어서 여쭈어 봅니다. 또한 제 코드가 왜 시간 초과가 나는지 모르겠습니다. dfs두개에 여러 로직들로 O(k(n)^2) 아닌가요? 72 ~ 77라인은 결국 ny, nx가 조건을 만족 할때 하는거라 n^3이 되지않는다고 보입니다. 이 라인들을 64번 for문 밖으로 빼면 72~ 77 라인의 시간 복잡도는 n^2이라고 생각는데 말이지요. http://boj.kr/6eca2b27e3f84a14af220a09ef488606
다른분들의 답변, 교안을 봐도 이해가 가지 않아서 질문드립니다. if(mid)ret.insert(ret.begin() + ret.size() / 2, mid); 위 부분에서 ret.begin()이 들어가야하는 이유를 모르겠습니다. 교안을 보면 insert(위치, 문자열)이라고 되어있으니까 insert(ret.size()/2 , mid)라고 하면 되지 않나요? 왜 ret.begin()을 빼면 오류가 나는지 다른 분들의 답변을 봐도, 오래 고민을 해봐도 도무지 이해가 가지 않아 답답한 마음에 질문드립니다ㅠㅠ
#include <bits/stdc++.h> using namespace std; int N, nums[100010], res=INT_MIN; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N; for(int i = 0 ; i < N ; i++){ cin >> nums[i]; } for(int i = 1 ; i < (1<<N) ; i*=2){ // 0001 0010 0100 1000 for(int j = i; j < (1<<N) ; j=(j<<1)+i){ // 0001 0011 0111 1111 int tmp=0; for(int k = 0 ; k < N ; k++){ if(j & 1<<k){ // k 번째 숫자 사용 여부. tmp+=nums[k]; } } res = max(res, tmp); } } cout << res << '\n'; } 안녕하세요 큰돌님 비트마스킹으로 풀어봤습니다만.. 이미 시간초과입니다. 그래도 시간초과라도 나오는 지 보려고 넣어봤는데 그냥 틀렸습니다라고만 떠서 반례를 찾아보려하는데 찾기가 어렵네요 ㅠㅠ 이 논리에 어느 부분이 문제인지 궁금합니다 ㅠㅠ
안녕하세요! http://boj.kr/56d99e00ded14c1cacbefe3eb07f6db6 8-C 정답 코드에서 dp 로직의 해당하는 부분이 햇갈려서 질문드립니다. 선생님 코드 링크를 기준으로 line 9~15에 해당하는 부분인데요. cost는 이해했습니다만 real_cost가 잘 이해가 안됩니다ㅠㅠ 지금 필요한 애들이 8명인데 이전에 투입한 애가 10명이면 투입할 필요없어서 (prev >= cost)의 true에 해당하는 부분이 0인건 이해가 잘 되는데 false에 해당하는 부분은 왜 cost인가요? 지금 필요한 애들이 11명이고 이전에 투입한 애가 10명이라면 1명만 더 넣으면되니까 real_cost = cost - prev 아닌가싶어서요... 이 의문이 return하는 ret에서(line 14~15)도 똑같이 적용되서 투입안한다 = go(here+1, num, 0) 이부분에서 현재 here에서 투입안했어도 prev친구들은 그대로 남으니까 go(here + 1, num, prev)가 아닌가 궁금합니다! 물론 제 의문대로 코드를 고쳐서 제출하니까 틀렸습니다ㅠ 제가 아마 선생님 코드를 잘못 이해한 것 같은데 설명 부탁드립니다..! 감사합니다!
3 2 3 4 15 라고 했을 때 답이 4가 나와야 되는데 Integer.MAX_VALUE로 했을 때는 -2147483645가 나오더라구여 .. 문제랑 채점 사이트에 있는 예제 6개에서 모두 동전 종류에 1이 있어서 오류가 안 뜬 거 같은데 동전 종류에 1이 없을 경우 위 예시와 같이 문제가 생길수도 있는거 아닌가용 ..? Integer.MAX_VALUE가 아니라 M 같은 수로 채워야되는 게 아닌가 궁금합니닷
강사님의 풀이랑은 많이 다르지만 논리적으로 문제를 못 찾겠는데, 채점시 틀리는 케이스가 있고, 런타임 오류도 생깁니다. 도움 부탁드립니다. import sys sys.stdin=open("C:/Users/Desktop/AA/섹션 3/5. 수들의 합/in1.txt", 'r') n,m = map(int,input().split()) lst = list(map(int,input().split())) cnt = 0 for i in range(0,len(lst)): for j in range(1,len(lst)): if sum(lst[i:j]) == m: cnt +=1 print(cnt)
안녕하세요 큰돌 선생님! 일곱난쟁이 문제에 0주차때 배운 조합 코드를 적용해서 개인적으로 코드를 작성해보았는데 예제는 잘 통과하지만 백준 홈페이지에서는 오류가 발생해서 질문드립니다. 어디가 틀린건지 봐주실수 있나요?? http://boj.kr/0d7e2786d4ef44fe8d5a8d468be2bc4d
안녕하세요. 2분 56초 즈음에 n=4 -> 3이고 n=8 -> 4 에서 log 2^n + 1 이 도출된다고 설명해주셨는데, 어떻게 저 로그식이 유도된건지 아이디어가 궁금합니다. 도무지 이해가 안됩니다ㅠ 영상에서 입력한 값을 나타내는 n과 등비수열의 공식에서 공비 r의 지수에 쓰인 n은 다른 n 맞죠..?? 전자는 입력한 값을, 후자는 덧셈식에서 항의 개수를 의미하는 것 맞나요?