묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P DFS 코드 질문 드립니다
안녕하세요, 강사님.강의 보기 먼저 혼자서 고민하며 풀어보았는데요,https://www.acmicpc.net/source/share/46676449a9414be689433f27149f744b 바이러스를 확산시킬 때 이번 문제의 경우 방문한곳을 굳이 체크하지 않고 값이 0인 지점은 모두 확산하면 되겠다고 생각해서 visited 배열 사용하여 이미 방문한 노드에 대한 확인은 하지 않았는데요, 이렇게 풀어도 괜찮은게 맞을까요?백준 제출 시 정답이 나오긴 했는데 찝찝해서 질문드립니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
4-5 그래프 강의 내용에 대해 질문드립니다.
안녕하세요!'4-5 그래프' 강의 내용 중에 '인접 리스트'를 사용해 그래프를 표현하는 경우 공간복잡도가 최악의 경우에도 O(N)이라고 설명을 해주셨는데요!그래프의 모든 노드가 다른 모든 노드에 연결되어있는 경우라면 딕셔너리 안에 N개의 키와 각각의 키에 크기 N-1의 1차원 배열이 들어가게 되니, 결국 N*(N-1) 만큼이 공간을 차지하여 최악의 경우 2차원 배열과 동일하게 O(N^2)의 공간복잡도를 가지게 되는 것은 아닌가 하는 생각이 들었는데요,인접 리스트를 사용할 때 최악의 경우 어떻게 O(N)의 공간복잡도가 나오게 되는지 궁금합니다!그리고, 일반적인 경우에는 모든 노드가 연결되어 있지는 않겠지만, 항상 이러한 최악의 경우도 고려하면서 문제를 풀어야 할지도 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-L 시간복잡도 추론을 어떻게 해야할지 감이 안옵니다.
비트마스킹 생각하기 전에 기본 추론 방식인 완탐 -> DP -> 그리디 순으로 생각을 해볼때 완탐의 경우 20C10 의 복잡도가 어느정돈지 아예 감이 안오더라구요20! / 10! * 10! 인데 10!은 360만정도로 이해했는데 문제 풀이에 도저히 20!의 감이 안와서 일단 '완탐'으로 가능한지 여부 자체도 파악이 안되더라구요.어떻게 이럴경우 대략적인 숫자를 확인해볼 수 있을까요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-c 질문드립니다
안녕하세요 dp 없이 dfs로 풀었는데 왜 틀렸는지 모르겠습니다. 그리고 Int 형 재귀는 아무리 봐도.. 떠오르기 힘든데 (외판원 순회 문제도 아직 이해를 하지 못했습니다 ㅜㅜ) int 재귀를 잘 이해하는 방법이 있을까요?#include <bits/stdc++.h> using namespace std; int t,a,d[54][54]; string s; char b[54][54]; bool check[54][54]; int ans[54][54]; const int dy[4] = {-1, 0, 1, 0}; const int dx[4] = {0, 1, 0, -1}; bool in(int aa,int bb){ return(1<=aa && aa<=t && 1<=bb && bb<=a); } void down(int y,int x){ check[y][x] = 1; int value = (int)b[y][x] - '0'; for(int i = 0; i < 4; i++){ int ny = y + dy[i] * value; int nx = x + dx[i] * value; if(!in(ny, nx) || b[ny][nx] == 'H') continue; if(check[ny][nx]){ cout << -1 << "\n"; exit(0); } d[ny][nx]=max(d[ny][nx],d[y][x]+1); down(ny,nx); } check[y][x] = 0; } int main(){ cin >> t >> a; for(int i = 1; i <= t; i++){ cin >> s; for(int j = 1; j <= a; j++){ b[i][j] = s[j - 1]; } } //cout << down(1, 1) << "\n"; d[1][1]=1; down(1,1); int ret=0; for (int i=1;i<=t;i++){ for (int j=1;j<=a;j++){ ret=max(ret,d[i][j]); } } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C 재귀 풀이 질문2
http://boj.kr/367fd4875e384ed7a3c4d8d650155ae6안녕하세요, 큰돌님.말씀해주신 대로 벡터에 크기 지정해서 런타임 에러 해결했습니다.연결성 체크하는 부분은 어떤 방식으로 구현해야 될까요?DFS로 할 수는 있을 것 같은데, 맞는 방향성이 아닌 것 같다는 생각이 듭니다...
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
맵 탐색에서 for문 내부의 조건문에 대해 질문 있습니다!
안녕하세요 큰돌님 열심히 수강중입니다 ㅎㅎvoid go 함수 내부에 for문에서if(a[ny][nx] && visited[ny][nx] == 0) go(ny,nx);이렇게 쓰는것과 강의 영상에 나오는 if(a[ny][nx] == 0)continue;if(visited[ny][nx]) continue;차이점이 있을까요?
-
미해결김영한의 실전 자바 - 중급 2편
자료구조&알고리즘 강의
코딩인터뷰용 자료구조&알고리즘 강의 만들어주시면 안되나요. 김영한님 한테 전달좀 해주세요ㅜㅜ
-
미해결김영한의 실전 자바 - 중급 2편
hashIndex함수의 매개변수가 E가 아닌 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 제네릭 Set 4 부분 강의에서 질문드리고 싶은 점이 있어 여쭤봅니다. private int hashIndex(Object value){ return Math.abs(value.hashCode())%capacity;}이 부분에서 매개변수가 E value가 아닌 Object 로 들어오는 이유는 타입 이레이저 때문일까요 ?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-O 질문있습니다!
항상 강의 잘 보고 있습니다 감사합니다 ㅎㅎ다음은 제가 작성한 코드입니다.https://www.acmicpc.net/source/93982542 제 코드에서 궁금한 점은 다음과 같습니다. 평소 제 코드 스타일과도 연관된 부분인데주어진 상황에 대해 정직하게 푼다고 해야 할까요..? 특히 완전탐색의 경우, 저는 대부분 '가능한 조건 탐색 -> 해당 조건 적용 -> 결과 확인'의 정해진 순서대로 풀이하는데, 지금까지는 문제가 없었지만 해당 방식이 추후 '색다른 접근을 요구하는 풀이' 등에서는 독이 될까 조금은 걱정됩니다. 크게 신경 쓰지 않아도 될까요?최소값을 찾았을 때, 이후의 가지치기 대신 exit(0)으로 프로그램을 종료시켜버리는 것이 괜찮을지 궁금합니다. 답변 기다리겠습니다. 감사합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C 재귀 풀이 질문
http://boj.kr/089c2c9136d74ad080637a1d940ca88d안녕하세요, 큰돌님.비트마스킹이 익숙치 않아서, 우선 재귀로 풀어봤습니다.풀다가 연결성 체크하는 부분에서 막혔는데, 어떤 방식으로 해야 될까요? DFS로 할 수는 있을 것 같은데, 맞는 방향성이 아닌 것 같다는 생각이 듭니다...
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
4주차 숙제 질문
4-9 숙제 질문 안녕하세요! 청소 관련 문제에서 아래처럼 했는데 무한루프에 빠집니다.. 어디가 잘못된건지 모르겠어서 질문드려요!감사합니다!def get_count_of_departments_cleaned_by_robot_vacuum(r, c, d, room_map): r_real = r c_real = c dr = [-1,0,1,0] dc = [0,1,0,-1] d_real = d count = 1 room_map[r][c] = 2 while True : stop = 0 while stop < 4: for i in range(4): d_real = (d_real+3)%4 r_fake = r_real + dr[d_real] c_fake = c_real + dc[d_real] if room_map[r_fake][c_fake] == 0 : count +=1 r_real = r_fake c_real = c_fake room_map[r_fake][c_fake] = 2 stop = 0 break else: stop += 1 d_real = (d_real+6)%4 r_real = r_real + dr[d_real] c_real = c_real + dc[d_real] if room_map[r_real][c_real] == 1: break return count
-
미해결해외 빅테크 코딩 인터뷰: LeetCode 포기자의 합격 공부법
질문이 세 가지 있습니다.
섹션 3 모의면접은 어떤 플랫폼 쓰신거에요? 인터뷰 보실 때 linkedIn이나 지인 통해서 Hiring manager를 먼저 컨택하셨나요? 아니면, career page에서 cold로 지원하셨나요? 지원 시점 부터 phone screening, full-loop 인터뷰 끝날 때까지 시간이 얼마나 걸리셨나요? 좋은 강의 배포해 주셔서 감사합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
스스로 작성한 코드 오류를 모르겠습니다
제 코드인데 어떤 부분이 틀렸는지 도저히 찾을 수 없어서 질문 남깁니다 #include <iostream>#include <vector>#include <utility>#include <algorithm>using namespace std;int n, c, tmp;vector<pair<int, int>> vec;int main(){ cin >> n >> c; while(n--){ cin >> tmp; auto it = find_if(vec.begin(), vec.end(), [&](pair<int, int> p) { return p.first == tmp; }); if (it != vec.end()) it->second++; else vec.push_back({tmp, 1}); } sort(vec.begin(), vec.end(), [](pair<int,int> a, pair<int,int> b){ return a.second > b.second; }); for (auto p : vec){ for(int i=0; i<p.second; i++) cout << p.first << " "; } return 0;}
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
모든 테스트 케이스랑 반례 찾아서 넣어도 맞게 나옵니다
안녕하세요!오랜만에 다시 코테를 푸는데 맞왜틀이 나와서 질문 드립니다!#include <iostream> using namespace std; int N, M, J; int l, r, cnt; int main(){ cin >> N >> M >> J; // 초기화 l = 1; r = M; cnt = 0; for (int i = 0; i < J; i++){ int apple; cin >> apple; // 범위 안이라서 움직일 필요 없다. if (apple >= l && apple <= r) continue; // 왼쪽에 가까우면 왼쪽으로 이동 오른쪽에 가까우면 오른쪽으로 이동 int leftLength = abs(l - apple); int rightLength = abs(r - apple); bool isLeft = leftLength < rightLength ? true : false; if (isLeft){ l -= leftLength; r -= leftLength; cnt += leftLength; } else{ l += rightLength; r += rightLength; cnt += rightLength; } } cout << cnt; return 0; }제가 만든 로직대로라면 절대로 경계값을 벗어날 수가 없습니다. 왜냐하면 문제에서 "각 사과는 N칸중 한 칸의 상단에서 떨어지기 시작하며" 라고 주어져 있기 때문입니다.67%에서 틀렸다고 나옵니다..!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-D 질문입니다!
http://boj.kr/88ce5a8413f544e49f40f03b76cc8be7큰돌님과 거의 유사한 방식으로 푼거같은데 왜 정답이 아닌지 잘 모르겠습니다혹시 반례가 존재하나요??
-
해결됨김영한의 실전 자바 - 중급 2편
O(1)의 값에 대한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 MyheshSetV0에 클래스에서(밑의 코드는 중략) 이 클래스의 인스턴스 변수인 int[] elementData 배열은 기본형이기에 모두 0으로 초기화 되어지는데이러한 메인 클래스에서 첫 set.addO(1)이 되는 부분이 이해가 잘 안되네요 ㅜㅜ결국 기본형 배열에 0으로 초기화가 되어있으니 끝까지 비교가 되어 처음 add 역시 O(n)이 될 것 같아서 Integer 제너릭 타입은 널이 들어가서 for-each문 배열을 안 돌지만 int형은 0으로 n번째만큼 돌지 않을까? 라는 생각을 하고 있습니다 혹시 가르쳐 주실 수 있을까요(요약문) int[] elementData는 기본형으로 0으로 전부 초기화 contains의 0값을 data에 다 넣어서 == 비교처리가 됨으로 O(n)처리가 되지 않을지 질문( 추후 Integer배열(null 초기화)로 가정하면 될지)
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
6강 연습문제 13137 질문있습니다.
Exchange Problem문제 질문있습니다. 이 문제를 분석하다가 어려워서 질문드립니다. 제가 분석한 결과는 dp를 통해 모든 경우의 수를 구한 것과 그리디를 통해 구한 경우의수를 비교하는 문제 같았습니다. 근데 예시를 보고 어떻게 문제를 접근해야하는지 모르겠습니다.8 1 5 10 50 100 500 1000 10000위의 예시처럼 밑의 8개의 단위로 된 동전을 통해서 모든 단위(1원~9999원)의 동전에 대해 그리디가 맞다면 yes이고 아니면 no를 택하는것인가요? 너무 어렵습니다... 혹시 파이썬 답안을 알려주실 수 있으신가요? 아니면 추가적인 강의에 대한 생각이 있으신지도 궁금합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
3-8 해쉬-2 코드 질문
3-8 해쉬 -2안녕하세요!설명해주신 코드에서 해쉬를 이용하면 결국 시간 복잡도는 결국 O(N)인데,아래와 같이 해도 되나요? 아래도 시간복잡도가 O(N)이라고 생각하는게 맞는지 궁금합니다!all_students = ["나연", "정연", "모모", "사나", "지효", "미나", "다현", "채영", "쯔위"] present_students = ["정연", "모모", "채영", "쯔위", "사나", "나연", "미나", "다현"] set(all_students)-set(present_students)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 문제 구성 질문
안녕하세요, 선생님.수업 진도 나가면서 혼자 30분 ~ 1시간 가량 고민해보며 먼저 문제를 풀어보고 그 이후에 강의 풀이를 보면서 복기하는 식으로 공부를 해 나가고 있는데요, 강의 듣던 중에 문제 구성 관련하여 궁금한점이 있어 질문드립니다.백준 문제를 선별하여 풀이를 해주시는데요, 혹시 백준 문제들은 해당 문제의 퀄리티가 좋고 코딩 테스트에 자주 나오며 그 문제를 완벽히 이해하고 풀었을 때 다른 문제 또한 비슷한 방법으로 접근했을 때 문제 풀이 능력이 향상될것이다 라는 기준으로 선정된 백준 문제들로 선별해주셨을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
비트마스킹
큰돌님 비트마스킹을 공부하면서 계속해서 드는 생각이라 질문해요. 생각해보면 비트마스킹으로 구현할 수 있는 것들은 재귀함수를 이용한 완전탐색으로 전부 풀 수 있다고 생각해요. 물론 비트마스킹을 이용하면 메모리나 CPU 연산 측면에서 조금 더 빠르긴 하겠지만, 문제를 푸는데 있어서 막 체감이 큰 느낌은 아닌 거 같아요. 그래서 비트마스킹을 문제를 조금 더 다양하게 풀 수 있다 정도로 생각하고 있는데, 이정도로 받아들여도 될까요? 아니면 제가 놓친 부분이 있을까요? 물론 다양하게 생각하는 게 좋은거지만 직접적으로 큰 영향력 있는 이론은 아닌 거 같아서 질문합니다.