묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
[오타] 2-4. 피보나치 수열
안녕하세요, 김태원 강의자님!강의 잘 듣고 있습니다 :)채점 사이트에 오타가 있어 글을 남깁니다.환절기 건강 조심하시기 바랍니다 🙂☘️ [오타 내용]2-4. 피보나치 수열설명 1) '피보나키' 수열
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
해설과 코드를 봐도 이해를 못하겠어서 질문드립니다.
안녕하세요 큰돌님!강의 들으면서 알고리즘 잘 하고있습니다! 정말 많은 시간을 들여서 고민했지만 그럼에도 모르겠는 부분이 있어 질문드립니다. 우선 놀이공원을 타는 아이들을 태울 수 있는 시간을 한 묶음단위로정확한 시간보다 더많은 시간을 구하는것으로 이해했습니다. 그래서 check 함수에서 아래와 같이 정확한 시간을 체크하지 않는 건가요?정확한 시간을 구하면 마지막 학생이 어떤 놀이기구를 타는것을 구하는것이 어렵기 떄문일까요?bool check(ll mid){ cnt = 0; for(int i = 0; i < m; i++){ cnt += mid / play[i]; if(mid % play[i]) cnt++; } return cnt >= n; } 그래고 정확한 시간을 구하기 위해 ret - 1을 하며 시간을 이전 묶음단위로 재정의 하고나서temp++을 하는 조건문을 이해지 못하겠습니다.ret은 정확한 시간이 아닌 원래 구하는 시간보다 +되어있는 시간인데왜 거기에 놀기기구의 시간을 % 연산을 해서 temp를 ++할까요?시간되실때 답변 부탁드리겠습니다!항상 친절한 답변 정말 감사드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-h성곽 문제 dfs 언더플로 오버플로 체크
안녕하세요, 큰돌님. 강의를 듣다 궁금한 점이 생겨서 질문 드립니다. 평소대로라면 dfs에서 최대 최소 범위 오버 플로나 언더 플로를 체크하셨을 텐데, 이번 코드는 그게 없네요.혹시 그 이유가 지도가 무조건 성벽에 둘러싸여져 있어서 그런 것일까요?
-
미해결자바 코딩테스트 - it 대기업 유제
실전 문제 질문 하나만 드립니다 ㅠ
강사님 안녕하세요, 제가 이번에 모 유니콘 기업에 코딩테스트를 보게 되었는데요.1반과 2반을 키순대로 나열하는데, 키순이 안맞는 곳만 상대방 반의 같은 index 위치의 학생과 교환이 가능합니다. 최소한 몇번 교환을 해야 만족하는지 구하는게 전부입니다. 너무 간단해 보여서 저는키순이 안맞는 위치를 체크한 후,같은 index 위치의 다른 반 애를 데려왔을때, 키순이 앞뒤로 안맞는지 체크, 안맞으면 안바꿈이런식으로만 했는데, 테스트 케이스 다 틀리네요 ㅠ얘는 그냥 구현일가요? 아니면 어떤 알고리즘이 있는걸가요?예제1)int[] height1 = {150, 170, 180, 180}; int[] height2 = {150, 160, 170, 190};답 : 횟수 1 (3번 인덱스 끼리만 교환) 예제2)int[] height1 = {130, 140}; int[] height2 = {130, 140};답 : 횟수 0
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2주차 #7 맵과 방향벡터 개념에서 문제 3번 질문입니다.
안녕하세요 큰돌님. 2주차 #7 맵과 방향벡터 개념에서 문제 3번 질문있습니다.큰돌님 블로그에 나와있는 코드를 입력하고 실행시켜봤는데 제가 예상한 답과 조금 다른거 같습니다.1 0 11 0 10 1 1이렇게 입력했을때 방문한 좌표는 (0:0), (1:0), (0:2), (1:2), (2:1), (2:2) 이렇게 6개가 나와야 하는데 밑의 사진처럼 (0:0), (1:0) 밖에 안나옵니다.혹시나 입력이 틀린건가 싶어 (1),(2)과 같이 입력해 보았는데 같은 결과였습니다...(1)(2)배열에 입력한 값은 잘 들어갔는데... 뭐가 문젠지 모르겠습니다.도와주세요.. =========================================================아 해결되었습니다.main 문에서 2차원배열을 순회하며 if(visited[i][j] == 0 && a[i][j]) 조건을 충족하는 것만 DFS재귀함수 돌리면 되네요..ㅋㅋㅋ=> 결과
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
중복된 요소 제거 목적으로는
중복된 요소 제거 목적으로는 그냥 set을 활용하면 안되나요?굳이 unique와 erase를 활용하는 이유가 있을까요? 시간복잡도도 많이 차이날텐데 set을 활용하때와 비교해서요.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이중 for문 런타임 에러 문제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.제가 이번 문제를 two pointers 알고리즘으로 풀기 이전이중 for문으로 구현을 했었는데요, 채점 사이트에서 돌려보니 시간 초과가 났습니다.제가 궁금한 점은,지난 문제에서는 4중 for문까지도 채점 사이트에서 정답이 떴었는왜 이번엔 이증 for문도 런타임 에러가 나는지 모르겠습니다.답변주시면 감사하겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 경로가 여러개일경우 하나만 출력하면 되는건가요?
여러개 출력해야하는 줄 알았는데 아니었나보네요#define prev aaa #define next aaaa 는 무슨뜻일까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-G 풀이 원리가
수빈이가 가는 모든곳을 계산할건데next가 먼저 자리잡는애가 최단시간 거리고next가 먼저 자리잡은애가 있는데 지금자리에서 1번만에 이동가능하면 else if 문이 실행되서 cnt가 늘어나는거고그중에서 동생이 있는곳의 값을 출력하는거군요??그리고 for (int next : {now-1, now+1, now*2}) 이 부분을 int i=0; i<n;i++ 이런식으로 구현하려면 어떻게 해야할까요? 그냥 몰라도 되려나요
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
아스키 코드를 사용해서 풀어도 괜찮을까요?
강사님, 안녕하세요. 저는 아스키코드를 사용해서 풀어봤는데, 강의에서 알려주신 방식에 비해 비효율적인지 궁금합니다! 큰 차이가 있을까요? function solution(str) { let answer=''; // 반복문으로 순회 for (let s of str) { let ascii = s.charCodeAt(); // 조건문으로 숫자인지 체크 if (ascii >= 48 && ascii <= 57) { // 숫자면 answer에 추가 answer += s; } } return parseInt(answer); }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 불이야 답 rep()부분 수정해주시면 안될까요?
사실 그냥 강의로 답 봐도 되긴합니다만 ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[완료]split 과 cin 에 대한 질문 입니다.
안녕하세요. 강사님.split 강의를 보다가split 함수에 들어가는 input 에 대응되는 인자를cin 메소드로 입력받게 했는데요.이상하게 첫 번째 token 만 받아와져서왜 해당 코드에선 정상 작동하지 않는지 궁금합니다.=============================================cin 이 공백 기준으로 구분 짓는다는 것을 잊었네요.std::getline 를 통해서 해결할 수 있는 것을 확인했습니다.=============================================#include <bits/stdc++.h> using namespace std; // split vector<string> split(string input, string delimiter) { vector<string> ret; long long pos; string token = ""; while((pos = input.find(delimiter)) != string::npos) { token = input.substr(0, pos); ret.push_back(token); input.erase(0, pos + delimiter.length()); } ret.push_back(input); return ret; } int main(void) { string abc, delimiter; cout << "input : "; // 입력을 받는 부분 cin >> abc; // abc = "a b c"; delimiter = " "; vector<string> result = split(abc, delimiter); for(auto it : result) cout << it << '\n'; return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-m 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요~~ 강의 잘 보고 있습니다.강의 중 3:18 에 "for문 c를 이렇게 한 점 ~" 이러는 부분 코드for(c++; c < n; c++)시작점에 c++ 이 있는 for문은 처음 보는데 검색해도 안나와서 설명 부탁 드립니다.for 문 돌기 전 저장된 c 에서 ++ 된 값으로 시작한다는 의미인가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I bool cmp함수에 대해 질문입니다
안녕하세요 강사님!첫번째 질문입니다!15행에 있는 bool타입의 cmp함수에 대해서 궁금한것이 있습니다. 저는 비교할 a와 b를 atoi함수를 이용하여 정수형으로 바꾼 다음 true와 false값을 반환하고 싶었습니다.http://boj.kr/5ddd323af5c04a56b8275929460adbd4하지만, 실력이 미숙하여서 atoi함수를 이용한 정답을 찾지 못하고 있습니다.그래서, atoi함수를 이용한 bool타입의 cmp함수의 코드가 궁금합니다! 두번째 질문입니다.http://boj.kr/665da2ad9cd1493ca004c528b5a74454위 코드를 이용해서 문제의 예제입력3번을 입력하면 출력값으로 0 0 0 1 2 3 4 7이 나옵니다.이 중, 0이 나오는 위치를 찾아보니 01bond와 03bond뒤에 0이 각각 출력됩니다. 고민해봐도 0이 왜 출력되는지 모르겠어서 질문 드립니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 의 단순 질문입니다
큰돌님 께서는 quard함수 안에 bool flag=0을 선어 하셨는데 하신 이유가 궁금합니다
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
봉우리문제에서 이해가되지않는부분이있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 받은 행렬은 0으로 초기화 한 가장자리가없는데 왜 그러한 행렬을 만들어주는 작업이 없는거죠?? 잘 이해가 되지않습니다.. 가장자리는 무조건 작다 라고 하는거도 이해가되는데 없는 행렬을 어떻게 비교할수있는지 모르겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-G 문제 풀이 질문있습니다
http://boj.kr/c3c5f90c10764291bfde2d6fe64406a2 자꾸 런타임에러(segfault)가 뜨네요 ㅜ원인이 무엇인지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 틀린 이유를 알고싶습니다ㅠㅠ
안녕하세요 큰돌님!2-R에서 선생님께서는 child라는 변수를 만들어 기저사례를 정하셨는데 저는 a[here].size() 즉 배열의 크기가 0이면 return 1을 하도록 기저사례를 정의했습니다.그렇게 했더니 틀렸습니다가 뜨더군요ㅠㅠㅠ 배열의 크기로 확인하면 안되는 걸까요..?#include <bits/stdc++.h> using namespace std; vector<int> a[54]; int n, tmp, del, root; int dfs(int here) { int ret = 0; //이 부분입니다! if(a[here].size() == 0) return 1; for(int there : a[here]) { if(there == del) continue; ret += dfs(there); } return ret; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n; for(int i = 0; i < n; i++) { cin >> tmp; if(tmp == -1) root = i; else a[tmp].push_back(i); } cin >> del; if(del == root) { cout << 0 << "\n"; return 0; } cout << dfs(root) << "\n"; return 0; }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B똑같이 친거같은데 결과가 다르네요
using namespace 아래로 답지꺼 복붙 하니까 제대로 되는데 제가 답지 따라서 타이핑 친 건 이건데 안 나오네요 아무리 봐도 어디가 잘못된 줄 모르겠어요#include<iostream> #include<cstring> #include<queue> #include<tuple> using namespace std; int n, m, mx, visited[54][54]; const int dy[]={-1,0,1,0}; const int dx[]={0,1,0,-1}; char a[54][54]; void bfs(int y, int x){ memset(visited,0,sizeof(visited)); visited[y][x]=1; queue<pair<int,int>>q; q.push({y,x}); while(q.size()){ tie(y,x)=q.front();q.pop(); for(int i=0;i<4;i++){ int ny=y+dy[i]; int nx=x+dy[i]; if(ny<0||ny>=n||nx<0||nx>=m)continue; if(visited[ny][nx])continue; if(a[ny][nx]=='W')continue; visited[ny][nx]=visited[y][x]+1; q.push({ny,nx}); mx=max(mx, visited[ny][nx]); } } return; } int main(){ cin >> n >> m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a[i][j]=='L')bfs(i,j); } } cout << mx-1 << "\n"; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B char는 띄어쓰기 없어도 그냥 배열에 받을 수 있는건가요
int경우에만 띄어쓰기 주의하면 되나요