묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DP 개념강의 자두나무 질문
안녕하세요 강사님, DP개념강의 설명하실 때 자두나무 코드를 예시로 설명해주셨는데요. 강사님 코드대로 실행해보니 제가 생각한 테스트케이스랑 다르게 나와서 질문드립니다. 입력 3 4111 제 예상: 3강사님 코드 출력: 1 입력3 12111 제 예상: 3강사님 코드 출력: -999999997
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - V make 함수 범위
void make(int n, int psum[], map<int, int>& mp) { for (int i = 1; i <= n; i++) { for (int j = i; j <= n + i - 1; j++) { int value = psum[j] - psum[j - i]; mp[value]++; if (i == n)break; } } } 위 코드에서 j의 범위가 j <= n이 아닌j <= n + i - 1인 것인 이유는 원형구조를 선형으로 대체하기 위해 늘려준 범위인 것일까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님 이문제를 풀면서 이해가 안되는 부분이 있습니다.bool check 부분에서 bool flag = 0;으로 둘 때랑 0으로 초기화 하지 않고 bool flag; 로 둘때 초기화를 화면 백준에서 결과 값이 다르게 나옵니다. bool flag;로 두면 시간 초과bool flag = 0으로 하면 맞았습니다. 이렇게 뜨는 데 왜그런걸까요? #include <bits/stdc++.h> using namespace std; int n, m, a[104][104],cnt=1,ret,visited[104][104]; vector<pair<int,int>>v; const int dy[] ={-1,0,1,0}; const int dx[] = {0,1,0,-1}; bool check(){ bool flag = 0; for(int i =0; i < n; i++){ for(int j =0; j < m;j++){ if(a[i][j] == 1) flag = true; } } if(flag) return 0; else return 1; } void dfs(int y, int x){ visited[y][x] = 1; if(a[y][x] == 1){ v.push_back({y,x}); return; } for(int i = 0; i<4;i++){ int ny = y + dy[i]; int nx = x + dx[i]; if(ny < 0 || nx < 0 || ny >= n || nx >= m) continue; if(visited[ny][nx]) continue; dfs(ny,nx); } return; } int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin >> n >> m; for(int i = 0; i < n; i++){ for(int j =0; j < m;j++){ cin >> a[i][j]; } } while(true){ memset(visited,0, sizeof(visited)); v.clear(); dfs(0,0); ret = v.size(); for(pair<int, int> c : v){ a[c.first][c.second] = 0; } cnt++; if(check()) break; } cout << cnt - 1 << "\n" << ret << "\n"; return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문
http://boj.kr/3c317ac3fc7940aaa96c9d416b207932안녕하세요 선생님.2-S 효율적인 해킹 문제를 위와같이 풀어보려 했는데 실패했습니다. 매 정점마다 각 정점을 start로 삼아 dfs로 탐색 후, 탐색을 마쳤을 때의 visited개수의 총합을 sum_hacked() 함수로 구해 가장 효율적인 해킹이 가능한 경우를 구하려 했는데요. 예제는 Pass되었으나 채점에서 바로 오답처리가 됩니다.잘못 생각한 부분 힌트 주시면 감사드리겠습니다. 감사합니다.
-
해결됨코딩테스트 [문제 해결 기법]
섹션1-예제1 질문
안녕하세요, 우선 좋은 강의 감사합니다.제가 보기엔 섹션1의 예제1에서 가장 중요한 아이디어는 아래 3가지인 것 같습니다.조작2와 조작3은 해당 칸의 색을 반전 시키는 것 외엔 같다.모든 칸에 우선 조작2를 시행한다.모든 칸에 조작2를 시행하면, 1번 아이디어에 의해 모든 검정타일을 반전 시킬 수 있다.또한, 해설에서 생각의 흐름 또한 1 → 2 → 3 인 것 같습니다.1번은 쉽게 관찰할 수 있는데, 2번 아이디어는 어떻게 생각하는 건가요?제가 혼자 문제에 대해 고민하며 1번 아이디어를 관찰했을 땐, 1번 아이디어를 어떻게 사용해야 할지 감이 잘 안 왔습니다. '조작2를 시행한 칸에 대해 조작3으로 번복하면 해당 칸 외엔 변화가 없고 해당 칸의 색만 바뀐다' 라는 사실까진 도달했지만, 모든 칸에 조작2를 우선적으로 시행해두고 아이디어1을 이용할 생각까진 도달하지 못했습니다. 이런 생각을 하지 못한 사람 입장에선, 모든 칸에 조작2를 먼저 해본다는 게 다소 막연하고 배경의 motivation이 없이 갑자기 툭 나온 생각 같다는 느낌이 들어서 질문 드립니다.더 나아가, 어떻게 이런 생각들을 운에 맡기지 않고 논리적으로 접근할 수 있을까요?
-
해결됨시니어 면접관이 알려주는 개발자 취업과 이직 한방에 해결하기 [이론편]
기술 스택에 대한 질문
안녕하세요 신입 입장에서 채용공고를 보다 보면 사용하는 기술에 대해 나열되어 있는 것을 볼 수 있는데요. 만약에 지원을 하려면 해당 기술 스택에 대해 자세히 다 알고 있어야 될까요.?
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
두수의합 Counter 사용
안녕하세요강사님 잘 보고 있습니다!!아래와 같이 해도 괜찮을까요?감사합니다~!from collections import Counter def solution(nums, target): answer = [0]*2 dict = Counter(sorted(nums)) for i in dict: if dict[target-i] == 1: return sorted([i, target-i]) return answer
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-D lower_bound 질문있습니다 :)
안녕하세요 선생님 🙂 lower_bound와 관련하여 궁금한 것이 있어서 질문드립니다. 해당 문제는 lower_bound를 이용하여 A 안에 있는 요소들 중 하나를 골라서 B에 있는 요소보다 큰 경우를 누적하여 더한 후에 출력하는 문제였습니다. 문제의 결과 값에서 lower_bound의 역할을 유추해보면, 1, 2번째 파라미터에 넣는 배열의 범위에서 3번째 파라미터에 있는 요소보다 작은 요소의 개수를 출력해주는 함수라는 것을 알 수 있었습니다. 반대로 upper_bound는 작은 요소가 아닌 큰 요소의 개수를 출력해주는 함수라는 것을 알게 되었습니다. 그렇다면, 같은 요소의 개수를 출력해주는 방법도 있을 거라고 생각하는데요, 구글을 아무리 뒤져봐도 키워드 선택을 잘못해서 그러는건지.. 관련 자료를 찾을 수 없었습니다. 혹시 이런 함수가 따로 있다면 알려주시면 도움이 많이 될 것 같습니다 :) lower_bound가 같은 경우도 처리해준다는 자료를 보긴 했는데요, 이 자료에 신뢰성이 있으려면 해당 문제에서 A와 B의 요소가 같아도 A가 B를 잡아먹을 수 있다는 조건을 만족해야 할 것 같습니다. 아래는 제가 보았던 자료의 링크입니다.https://chanhuiseok.github.io/posts/algo-55/
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
선형탐색 -> "틀렸습니다" 가 나옵니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님. 선형탐색으로 하면 어떻게 되는지 궁금하여 백준에 해당 코드를 제출하여보았는데 예상과 다르게 "틀렸습니다" 가 나옵니다. 선형탐색은 시간복잡도가 더 클 뿐 틀린것은 아니기에 "시간초과" 가 나와야 되는거 아닌가요??#include<bits/stdc++.h> using namespace std; int n; int m; int a[300002]; int ret = 987654321; bool search(int mid) { int t_ret = 0; for (int j = 0; j < m; j++) { t_ret += a[j] / mid; if (a[j] % mid) t_ret++; } return t_ret <= n; } int main() { cin >> n >> m; int left = 1, right = -1; for (int i = 0; i < m; i++) { cin >> a[i]; right = max(right, a[i]); } ret = right; for (int i = left; i <= right; i++) { if (search(i)) { ret = min(ret, i); break; } } cout << ret; return 0; }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - S 실전 관련 질문 드립니다..!
풀긴 했는데 메모리랑 시간 사용량이 어마어마 해서요..실전이 얼마 안남아서 실전에서도 이렇게 풀어도 되나 싶어서 여쭤봅니다... 제가 파악한 큰돌님과 저의 코드 차이점은저는 연산 기호를 사용할 수 있냐는 기준을카운팅 배열을 쓰고 원복하고 했던 거랑수식들을 계산할 때, 스택에 넣고 계산하는 방식을 쓴 게 가장 큰 차이인 것 같습니다.그리고 실제 문제로 이런 문제가 나온다면 몇 분 안에 풀어야 될지도 궁금합니다..! 저는 40~50분 안에 풀면 안정권이라 생각했는데 큰돌님 의견이 궁금하네욤!http://boj.kr/229b1729870841dfa19aaa13c1760073
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-S 질문드립니다 :)
안녕하세요 선생님 🙂 다시 풀다가 이해가 되지 않는 부분이 있어서 질문드립니다. 재귀를 할 때 함수 파라미터에 sum - 1, minus - 1이 아닌 --sum, --minus를 넣을 때 틀리는 이유가 궁금합니다.위의 아이디어를 떠올린 계기는, -1연산을 습관적으로 sum--와 같은 후위연산자를 사용해서 풀이했었습니다. 결과가 틀렸을 때, '후위연산자여서 함수가 재귀될 때 바로 -1이 되지 않아서 그런거구나'라는 생각이 들어서 --sum과 같은 전위연산자를 사용했는데도 틀리더라구요.. 조언주시면 정말 감사하겠습니다!! ^^ http://boj.kr/2a8523783dfd497a96fc3229f86e0218
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-Q 질문 있습니다.!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/9d9e543bdcc34d91b61422b4f11385ae안녕하세요 선생님 제가 작성한 코드입니다. 아무리 생각해도 이코드도 맞아야 되는거 같은데 왜 틀렸는지 도저히 모르겠네요... 어떤 부분이 틀렸는지 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
그리디, 라인스위핑 질문있습니다 :)
안녕하세요 선생님 🙂 그리디랑 라인스위핑 문제를 다시 풀어보고있는데요, 문제마다 앞에서부터 정렬할지, 뒤에서부터 정렬할지 정확하게 판단이 서지를 않고 있습니다. 조언해주신다면 정말 도움이 많이 될 것 같습니다..!! 항상 감사합니다 :)
-
미해결코딩테스트 [ ALL IN ONE ]
노션 공유 안 됨
안녕하세요. 구글 폼으로 10월 14일 화요일 저녁 9시쯤, 10월 16일 오전 9시 좀 넘어서 구글 폼으로 이메일 2번 보냈는데 아직 노션 공유가 안됩니다! 이메일은 아이디@gmail.com으로 해놨습니다. 확인 부탁드리겠습니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-T 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님, 2-T 접근방법에 대해 질문있습니다!문제를 읽고 우선 queue나 stack으로 풀어야겠다는 생각은 들었는데, 해당 문제가 우측으로 더 큰항목이 있는지 비교(input과 특정 항목을 비교)하는 문제이기 때문에, queue로 구현하면 queue의 front에 가장 큰 값이 들어올 경우, 이후 항목에서 오큰수를 부여할 수 있는 수열들이 들어오더라도 queue를 pop하지 못하고, pop할 수 있는 항목들을 queue를 순회해서 찾는다고 하면 시간복잡도가 O(N^2)으로 커져버리니까 스택을 사용해야겠다! 라는 사고에 따라 스택을 사용하기로 결정하면 되나요?또 한가지 질문이 있습니다..!! 정답 배열로 정수를 출력하는 문제라고 가정하면, int배열을 사용하여 푸는 것과 벡터<int> v 에 푸시하여 사용하는 것 어떤 것이 유리한지 궁금합니다!
-
미해결김영한의 실전 자바 - 중급 2편
List 생성할때
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요!문제와 풀이를 해보다 문득 궁금해졌는데,혹시 ArrayList 생성할때List<Integer> list = new ArrayList<>(); ArrayList<Integer> list = new ArrayList<>();두개의 차이가 있을까요 ..?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
tsp함수에서 (visited | (1 << i))
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 강의잘 듣고 있습니다. 다름이 아니라 코드 중에 잘 이해가 가지 않는 부분이 있어서 질문드립니다.ret = min(ret, tsmp(i, visited | (1 << i)) + dist[here][i]);에서 visited | (1 << i)는 i를 기준으로 탐색하지 않는 곳을 확인 하기 위해서 필요한 코드인가요?ex) tsp(0, 1)이고 i = 1일때, ret = min(최대, tsp(1, 1 | (1 << 1), + dist[0][1])이 됩니다여기서 tsp(1, 1 | (1 << 1)은 0, 1번째를 탐색했고 다시 1번째를 기준으로 2, 3을 탐색하는 것일까요?0, 1을 탐색하는 이유는 1 | (1 << 1) -> 0001 | 0010 -> 0011이고 이는 0번째와 1번째를 확인했음을 의미하는 거 맞을까요?그리고 2번을 기준으로 나머지 탐색을 하지 않은 도시(3, 4)를 탐색하는 것이구요.위의 내용이 맞다면, 해당 코드에 대한 이해는 했는데 솔직히 말하면 제가 visited | (1 << i)라는 코드를 떠올리지는 못할 것 같습니다... 어떻게 하면 떠올릴 수 있을까요? 아직은 문제풀이를 많이 하지 않았으니까 그냥 외우면 되는 걸까요? ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 질문있습니다 :)
안녕하세요 선생님 🙂 다시 풀다보니 아래와 같은 풀이가 나왔는데요, 테스트케이스는 전부 올바른데 어디가 잘못된 것인지 모르겠어서 질문드립니다 ㅠㅠ 완전탐색을 이용하였습니다.http://boj.kr/4da9822932e3463aad4614f9fd3ab7db
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
그룹 단어 체커 - 백준 1316번 관련 문의드립니다.
N = int(input()) words = [ input() for _ in range(N) ] ans = 0 for word in words: prev = word[0] before = [] isGroup = True for i in range(len(word)): if word[i] != prev: before.append(prev) if word[i] in before: isGroup = False break if isGroup: print(word) ans += 1 print(ans이게 수업으로 제공하셨던 정답 코드인데, 오답 코드가 아닌가 해서 여쭤봅니다. prev 변수가 갱신이 되지않고 계속해서 그룹여부를 체크하는데, 이 부분이 잘못 된 것이 아닌가 싶습니다.예를 들어 abcb라는 문자열의 경우에서도 그룹단어가 아니어야하는데 그룹단어로 검출되는 로직인 것 같습니다. 제가 그룹단어에 대해 잘못 이해한 걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 시간초과 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요! 이번에 2-Q문제를 푸는데, 로직과 출력은 문제없는것 같은데 시간 초과가 나와서 어느 부분때문에 시간 초과가 나온지 너무 궁금합니다. http://boj.kr/0d1b70e1393b4e239c54738af690e44e항상 좋은 강의 감사합니다!