묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 문의 bool cmp(pair<int, int> a, pair<int, int> b)
안녕하세요 선생님.제가 교안을 공부하다가 이해가 가지 않아서 질문을 드립니다.http://boj.kr/386f3c2271d44c3d8ec3b88cb723b536이렇게 출력하면 출력된 값이 아래와 같습니다.10 : 09 : 11 : 98 : 22 : 87 : 33 : 76 : 44 : 65 : 5it.first는 기호 : 을 기준으로 왼쪽에, it.second는 기호 : 을 기준으로 오른쪽에 출력이 된것을 알 수가 있는데bool cmp(pair<int, int> a, pair<int, int> b){return a.first < b.second;}에서 a를 {10,0} b를 {9,1}로 보게 된다면 10 : 0 이 9 : 1보다 아래에 있어야 하는 것으로 생각했는데 제가 잘못 이해한 것 같아서 어떻게 이해해야 올바르게 이해를 한 것인지 궁금하여 문의 드립니다.더하여, bool cmp(pair<int, int> a, pair<int, int> b){return a.first < b.second;에서 a.first < b.second일 경우, bool형에 의해서 1이 출력되고, 이 조건에 따라sort(v.begin(), v.end(), cmp)이 정렬이 되는게 맞는지 문의드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3주차 완전탐색과 백트래킹 개념강의 이해가 하나도 안갑니다..
이해가 하나도 안가네요 ㅠㅠ이럴경우 어떻게 해야될까요...문제는 간신히/??이해 했는데 설명들어도 무슨말인지 통 모르겠네요..
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
예시 1번이 이해가 가지않습니다.
선생님께서 주신 1번 자료에서 [22,23]이라는 값이 있습니다. 이값때문에 [12,23], [21,23], [22,23]만 뽑히는거 아닌가요??어떻게 6개가 나오는지 이해가 되지않습니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 선생님. 코드 질문이 있어서 질문 남겨봅니다.
선생님께서 풀어주신 dp 1차원 테이블 코드 말고도 2차원 dp 테이블로 풀어보았는데 해당 코드가 어떤 문제가 있는지 모르겠습니다.import sys sys.stdin = open("input.text", "rt") input = sys.stdin.readline sys.setrecursionlimit(10**6) data = [] n, limit = map(int, input().split()) #보석 종류, 무게 한계값 for _ in range(n): a,b = map(int, input().split()) data.append((a,b)) #무게, 가치 data.insert(0,(0,0)) #0번 인덱스 사용안함 dp = [[0] * (limit+1) for _ in range(n+1)] for i in range(1,n+1): for j in range(1,limit + 1): weight = data[i][0] # 현재 물건 무게 value = data[i][1] # 현재 물건 가치 if j < weight: #현재 물건 담을 수 없으니 이전꺼 가져와야함 dp[i][j] = dp[i-1][j] else: #현재 물건 담을 수 있음 dp[i][j] = max(dp[i-1][j-weight] + value, dp[i-1][j]) print(dp[n][limit])해당 문제를 백준 배낭 냅색 알고리즘 문제에 제출하면 100점이 뜨는데 여기 문제에 예시를 출력해보면 28이 아닌 26이 나옵니다.. 어떤 것이 문제인지 모르겠고 dp 2차원을 최적화해서 1차원으로 만든 것인데 문제가 어디 부분인지 감이 안옵니다. 미리 답변 감사합니다 !
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
sstream은 코테에서 잘 안쓰는 개념인가요?
교안에는 없어서 질문드립니다!
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이중 for문에 대한 시간 복잡도 질문 있습니다!
밑의 코드의 내부 for문에서 최악의 경우 연산이 arr.length-1번 일어나기 때문에 시간 복잡도를 O(n^2)으로 봐야 할까요?function solution(m, arr) { let answer = 0, sum = 0; for (let i = 0; i < arr.length; i++) { sum = arr[i]; if (sum === m) { answer += 1; continue; } for (let j = i + 1; j < arr.length; j++) { sum += arr[j]; if (sum === m) { answer += 1; break; } else if (sum > m) { break; } } } return answer; }
-
미해결코딩테스트 [ ALL IN ONE ]
동적배열 7:35
안녕하세요!동적배열 강의관련 질문드립니다.정적배열과 동적배열의 시간복잡도를 비교하는 표에서,정적배열의 데이터 추가/삽입(insert_back/insert_at)이 이해가 안 되어 질문드립니다.정적배열은 선언과 동시에 크기가 정해지는데, 이미 초기화가 된 상태에서 추가나 삽입은 안 되지 않나요?혹시 크기만 선언된 비어있는 정적배열을 말하는건가 생각해보니, 비어있는거면 insert_at이나 delete_at을 할 때도 기존 데이터를 옮길 필요가 없으니 O(n)이 아니라 O(1)이지 않나싶어서 그건 아닌 것 같고,아니면 크기보다 데이터가 덜 들어간 케이스에서 저런 시간복잡도가 나오는건가요? ㅠㅠ 그렇다면 저게 다 이해가 됩니다.그런데 아무리 그래도 정적배열에서는 추가/삽입의 한계가 있지 않나요? 어떤 조건에서 저게 되는건지 알려주세요ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A 19942
http://boj.kr/377650e87589448abf24b7196faba01b안녕하세요 여러번 시도를 해봐도 어디서 틀린건지 잘 모르겠습니다..ㅜㅡㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님 질문이 있습니당(8-B)
다름 아니라 dp를 걸 때 str,int 이 2개의 값으로만 dp를 거는데요.그 해당 값을 얻을 수 있었던 경로(visited)도 dp에 포함되어야 하는거 아닌가요 ?예를들면 str이 3이고 int가 3인 dp가 있을 때 (dp[3][3])해당 지점까지 가는 경로의 경우의 수가 여러가지 일테니각 경우의 수마다 얻을 수 있는 max값이 달라지지 않나요?dp에 이 2가지 요소만 들어가도 되는 이유를 잘 모르겠습니당 ㅠㅠ ㅎㅎ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/651b3f6555054253aff3c5af3b037dbb이전에도 visited 위치에 대해서 질문한 적이 있는데, 이번에도 질문 드립니다.논리를 생각하고, 구현에서 막혀서 고민 중 강의의 코드를 보다가 구지 main과 dfs 둘 다 visited = 1 의 과정을 적어야 하는지에 대해 의문이 듭니다. 위의 제가 올려둔 코드처럼 할 경우 문제가 있는지 알고 싶습니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/681ea9efbab148389692696bbe044d80문제 고민하다가 강사님께서 말씀하신 풀이대로 하던 중에 "모든 구역 다 탐방해도 되지만, 그냥 L인 부분만 골라서 그 좌표 넣어서 하는 건 안 될까?' 라는 생각이 들어서 갑자기 이 코드로 해봤는데요, bfs에서 반환되는 부분이랑 main에서 treasure.size 부분에서 오류가 있다는 건 아는데, 이렇게 해서 이 문제 해결에 대해서 강사님의 생각이 듣고 싶습니다!
-
해결됨코딩테스트 [ ALL IN ONE ]
시간복잡도 질문
안녕하세요 강사님알찬 강의 구성으로 재미있게 강의를 듣고 있습니다.다름이 아니라 시간 복잡도에 대해서 여쭤보고 싶은게 있어서 글을 남깁니다.현재 완전탐색을 하게 되면 시간 복잡도가 n2이 된다고 하셨는데, 두번째 반복문 조건을 j = i+1 로 설정하는 순간부터 n2이 아니라 n log n이 되는 것이 아닌가 싶어서요.만약 nums의 길이가 5라면 최악의 경우에도 반복문이 전체가 돌아간다면 ( 4+ 3+ 2+ 1 ) = 10번으로 n2 = 25일때보다는 획기적으로 줄어드는 것 같아요!5의 경우에도 절반 이하로 줄어들었는데 숫자가 커지면 커질수록 기하급수적으로 줄어들 것으로 보이는데, 혹시 제가 잘못 생각하고 있는 걸까요? ㅠㅠ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
while문 없이 if만 사용
function solution(m, arr) { let answer = 0; let sum = 0; let lt = 0; for (let rt = 0; rt < arr.length; rt++) { if (sum < m) sum += arr[rt]; else if (sum > m) { sum -= arr[lt++]; } if (sum === m) { answer++; sum += arr[rt]; } } return answer; } let a = [1, 2, 1, 3, 1, 1, 1, 2];while문 없이 if만 사용해도 답이 나오던데 while문 이렇게 사용해도 문제가 없나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-D 이왜틀 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.vs코드에선 문제없이 결과값이 잘 출력되는데 백준에서 채점을 하면 틀렸다고 나옵니다. 계속 고민하다가 어떤 것이 문제인지 잘 모르겠어서 이렇게 질문 드립니다 ㅜㅜhttp://boj.kr/39e3a3ae1e12496c89bd1a369f199c12
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문있습니다.
저는 선생님과 달리 bfs로 로직을 짰습니다.이유는 완전이진 트리만을 생각했기 때문에가장 높은 레벨인 노드들만 카운트하면 된다 생각했었습니다.물론 틀린생각이었죠.어찌됐든 bfs로 로직을 짰고 자식노드가 발견되면 플래그를 변경하고 플레그에 따라 리프노드를 선별하는 방식입니다.또한 삭제노드와 동일한 노드는 큐에 추가하지 않고 패씽했습니다.무엇이 문제인지 모르겠습니다.http://boj.kr/9c43785254f842aa975a11e833102304
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[교안 질문]재귀를 이용한 순열
쌤. 위의 함수에서 r 파라미터를 사용하는 의미가 무엇인지 궁금합니다.아래와 같이 r을 생략하고 n으로 대체해도 같은 결과를 얻을 수 있어 보여서요. void makePermutation(int n, int depth){ if(n == depth){ printV(v); return; } for(int i = depth; i < n; i++){ swap(v[i], v[depth]); makePermutation(n,depth+1); swap(v[i], v[depth]); } return;}
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3주차 개념강의 - 색종이 붙이기
쌤~3주차 강의 중에, 색종이 붙이기 부분에서, 전반적으로 이해가 잘 안됩니다..특히 함수들의 파라미터 중, int cnt가 하는 역할이 어떤 것인지 감이 안잡히네요 ㅠ Q1. 왜 cnt 라는 파라미터가 존재해야 하는지부터 이해가 어렵습니다.. 왜 존재하나요?Q2. 모든 발단이 문제 해석이 와닿지 않아서 그런것 같습니다. 색종이 붙이기 문제에 대한 분석을 좀 더 설명 부탁드려도 될까요? 늘 좋은 강의 감사드립니다~!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
손코딩 이후 IDE에 코드 작성하는 방법
안녕하세요! 강의 잘 듣고 있는 학생입니다.선생님 저 같은 경우 코딩 테스트 문제를 풀때, 컴퓨터(IDE)에 바로 작성하지 않고 노트에 solution 부분의 코드를 전부 손코딩으로 작성 해본 뒤에 컴퓨터로 작성합니다. 이런 방식이 코딩테스트 시험 볼때는 시간제한이 있으니,, 비효율적인지 궁금합니다. (현재는 코드가 짧아서 상관 없다고 생각하지만, 어려운 문제들.. 즉, 코드가 길어 지는 문제들을 풀때 문제가 되지 않을까? 생각하여 이렇게 질문을 남깁니다) 이렇게 하게 된 이유는, 펜으로 작성해보지 않고 바로 코드를 타이핑 하려니 생각이 잘 떠오르지 않아 이렇게 하게 되었습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2589번 보물섬 테스트케이스
안녕하세요 큰돌 선생님 수업 잘 듣고있습니다.다름이 아니라 강의를 듣기전 문제를 한번 풀어보았는데 궁금한 것이 생겨 질문 드리게 되었습니다.https://www.acmicpc.net/source/55784974육지인 지역 2곳을 뽑아서 bfs(최단거리)를 사용해 풀었는데요, 틀렸습니다. 시간복잡도의 문제도 있겠지만 그 전에 12%에서 반례 케이스가 존재하였습니다.5 5LLLLLLWWWLLWWWLLWWWLLLLLL이 테스트케이스의 답은 8인데 저는 14가 나왔습니다.궁금해서 visited배열을 출력하였더니, 이렇게 나왔습니다.정상적으로 bfs가 수행되지않았는데 이유가 무엇인지 알 수 있을까요?감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제풀이관련 질문
안녕하세요 큰돌님 문제풀이 관련 질문이 있어 이렇게 글을 남깁니다.유튜브에서 코딩테스트 딱 이정까지 고민하세요 영상을 보면 난이도에따라 골드5~3정도는 1시간골드2~플레 4시간 고민하라고 하셨는데, 말씀해주신 시간만큼 고민했지만 풀지 못한 문제 또는 틀린 문제는 어떤 방식으로 학습하고 복습하는게 좋나요?