묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
봉우리 문제 질문있습니다. 강의와 다르게 풀어서 맞았는데 확장성? 이나 활용도에서 문제가 발생하는지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 강의듣기 전에 풀이해본 내용인데요! 관련해서 질문이 있습니다! 아래 코드 처럼 풀었는데,경계값을 해주는걸 solution 내부 함수에서 해주는게 아니고, 입력값에서 배열 사이즈 조정하는걸로 풀면 다른 활용문제에서 어떤 문제가 발생할지 궁금합니다!저는 행, 열에 각각 +1, -1 해주면서 찾았는데, 이렇게 하면 강의에서 말씀하신 대각선 값 비교할때 문제가 있을까요?대각선의 경우 분기처리할때 각행과 열에 (-1, +1 ) (-1, -1) (+1, +1), (+1, -1)추가해서 체크해주는게 다른 활용 문제에서 어떤 문제가 발생할지 궁금합니다! 문제는 없지만 비효율적이고 가독성이 안좋아서 그런걸까요?3중 포문으로 하면 시간복잡도가 O(n^3)가 되서 성능이 떨어지는거 아닌지 궁금합니다. 아래 코드로 하면 O(n^2)이라서 더 빠를 것 같았는데 강의로 알려주신 코드보다 12ms 더 느리더라구요!import java.util.Scanner; public class Main { public int solution(int n, int[][] arr){ int answer = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int tmp = arr[i][j]; // 첫째줄 조건은 열 체크. 둘째줄 조건은 행 체크 if (tmp > arr[i][j+1] && tmp > arr[i][j-1] && tmp > arr[i+1][j] && tmp > arr[i-1][j]) { answer ++; } } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n+2][n+2]; for (int i = 1; i <= n ; i++) { for (int j = 1; j <= n; j++) { arr[i][j] = sc.nextInt(); } } System.out.println(T.solution(n,arr)); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
queue를 이용하지 않고 풀었는데 틀려서 혹시 어느 부분이 틀렸는지 알 수 있을까요?
안녕하세요 큰돌님 혹시 제 코드 어떤 부분이 틀렸는지 알 수 있을까요?ㅠㅠqueue를 이용하지 않고 풀어봤습니다.http://boj.kr/2bbecad5eddd417e8fc0af56519e96ae
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
map을 사용시 시간초과가 되는데 이유가 뭘까요...?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/d466b4cc3d3048f990700e44cfc1de54 처음엔 위 링크와 같이 map으로 풀었는데 계속 시간 초과가 나더라구요... 예시 코드와 어느 부분에서 시간 차이가 나는 걸까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
split함수를 이용해서 구현했는데 제출 결과가 틀렸다고 뜹니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 큰돌 강사님, 아무리 생각해도 이 코드가 틀린 이유를 모르겠어서 질문하게 되었습니다. http://boj.kr/cfc58ee8fdc94e93a5b6ce83a2221a2b split함수로 "pi","ka","chu" 모두 없애고, str.length 비교로 정답 유무 확인할 수 있는거 아닌가요?예시 코드는 전부 다 맞는데,히든 케이스가 문제같아요. 어떤 예외처리를 못한걸까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
런타임 에러가 뜨는 이유를 모르겠습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 큰돌 강사님, 출력하는 부분에서 런타임 에러가 뜨는 것 같은데 이유를 모르겠습니다. 확인 부탁드려요!http://boj.kr/d51f467f78ca414180b8b5f326707d20 cout << "["; for (int i = 0; i < D.size() - 1; i++) { cout << D[i] << ","; } cout << D[D.size() - 1] << "]\n";이 부분을 큰돌님이 올려준 코드로 바꾸면 작동 잘 되더라고요...vscode로 돌려보면 정답은 잘 나옵니다
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
최적화(재귀, 백트래킹의 경우의 수 ) 마지막 문제(냅색) 코드에 질문이 있습니다.
안녕하세요, 강의 잘 듣고있습니다. 다름이 아니라, 마지막 문제인 냅색 문제에서 물건을 안넣은 경우에 recur(idx +1, weight, value)가 아닌 recur(idx, weight, value) 로만 파라미터를 설정하신 이유가 궁금합니다!질문과 별개로 강의 내용이 정말 좋아서.. 당장 이번주 코딩 테스트인데 도움이 많이 될 것 같습니다. 좋은 강의 저렴하게 제공해주셔서 정말 감사합니다!
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니다.
function solution(s) { let answer = ""; let stack = []; for (let x of s) { if (x === "(") stack.push(x); else if (x === ")") { stack.pop(); } else if (stack.length === 0) answer += x; } return answer; }")"문자를 만나기 전까지 모두 push() 하는것이 아닌 알파벳 문자를 만났을때 스택에 괄호가 존재한다면 괄호로 감싸진 문자열이기 때문에 0일때만 answer에 더했습니다. 괜찮은 답일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-W
안녕하세요 큰돌님!코드를 다음과 같이 짜봤습니다(짧으니 글에 올리겠습니다!) #include<bits/stdc++.h> using namespace std; int n, ret = -987654321; int a[100004]; int psum[200004]; void make(int interval) { for (int i = 0; i + interval <= n; i++)ret = max(ret, psum[i + interval] - psum[i]); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; psum[i] = psum[i - 1] + a[i]; } for (int i = 1; i <= n; i++)make(i); cout << ret << '\n'; }누적합을 이용해 인터벌 만큼 계산 해주면 시간 복잡도가 줄겠구나 싶었는데 그래도 이중 for문이라 시간 초과가 나더라구요실전에서 내가 큰돌님 같은 아이디어를 내는 사고를 할 수 있을까? 싶어 다른 풀이를 알아보니 DP 풀이가 있다고 하더라구요!이미 쓰였던 값을 따로 저장해놓고 해당 값이 나오면 캐싱(cashing) 느낌으로 쓰이는 방법이라고 하더라구요!혹시 해당 문제가 7주차 dp에도 있나 봤는데 따로 없는 것 같아서 큰돌님이시라면 DP로 어떻게 접근하실지 궁금해서 질문 남깁니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
split 강의 마지막에 오류가 있는 것 같습니다.
마지막 7:29 정도를 보시면, 12번째 라인에 ret.push_back(token) 으로 되어있는데 token이 아닌 input을 넣어야 할 것 같습니다. (교안에는 문제 없이 나와있습니다.)콘솔 결과에 마지막 천재입니다가 두번 출력되길래 왜인가 싶었는데 이런 오타가 있었네요 ㅎㅎ,
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 반례 체크해도 틀리다고 합니다ㅠ
http://boj.kr/a903e6ca7fd743ef98efaf41143311cb안녕하세요 선생님!!안전 영역 문제의 반례에 대한 처리를 제외하곤 전부 다 맞다고 생각하고반례에 대한 코드를 처리하여 제출을 하였는데도 틀리다고 나옵니다ㅠㅠ예제 모두 체크해본 결과 답도 동일하게 나옵니다.어떤 오류가 있는지 궁금합니다ㅠ
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
55번 기차운행 문의드립니다.
안녕하세요. 3~5번 틀렸다고 하여 3~5번 값을 input.txt에 복사하여 컴파일 했을 때는 값이 같아서 문의드립니다. 디버그하여 하나씩 봐도 아직 부족하여 답을 못찾았습니다.. 놓친 부분이 어디인지 확인 가능할까요?? #include <iostream> #include <vector> #include <algorithm> #include <math.h> using namespace std; int main() { freopen("input.txt", "rt", stdin); int cnt = 0, o_cnt = 0, j = 1; int last; vector<int> a; vector<char> b; int n, m; cin >> n; for (int i = 0; i < n; i++) { cin >> m; a.push_back(m); b.push_back('P'); cnt++; while (1) { if (j == a.back()) { a.pop_back(); b.push_back('O'); j++, o_cnt++; } else break; } } if (o_cnt != cnt) { cout << "impossible"; return 0; } for (int i = 0; i <= b.size(); i++) { cout << b[i]; } return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T
모듈러 연산으로 축소할 수 있겠다는 생각 기가막히네요...우선 저는 시간이 오래 걸릴거 같긴한데R,C가 100이라 최대 10000칸이고한칸씩 움직임을 처리한다고 가정하면S가 최대 1000, 상어가 최대 10000마리니까로직의 최대값이 천만이겠구나라고 생각하고우선 무식하게 풀어봤습니다!http://boj.kr/b4539b56a6934360aa650d00017513dc그런데 테케와 게시판 반례를 다 넣어봐도 1%에서 틀렸다고 나와서 질문드립니다..!제가 보통 질문을 드리면 4시간 정도는 문제에 시간을 투자하고 질문을 드리는데 그래도 요즘 너무 많은 거 같아서 죄송합니다.항상 양질의 답변 주셔서 감사드립니다 큰돌님!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[6-J] 질문이용 (6분 28초)
왜 여기서 4분이 막 됐을 때 하나 더 태울 수 있는건가요 ?4분이 됐으면 그냥 거기서 끝 아닌가요 ??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-R 강의 질문
안녕하세요 선생님 강의를 듣다가 이해가 안되는 부분이 있어서 질문드립니다. 여러번 반복해서 강의를 보고 정답코드도 보았는데요, 코드에서 mal 함수가 어떤 역할을 하는지 모르겠고 또 왜 4칸짜리 배열인지도 잘 모르겠습니다.또 하나 질문은 cnt의 역할을 잘 모르겠고 bfs가 왜 사용되는지도 모르겠습니다ㅠㅠ 연결리스트로 맵을 생성하는 부분은 이해하였는데 다른부분이 이해되지 않습니다 ㅜ 제가 뭔가 잘못짚고 있는건지.. 질문이 많아서 죄송합니다
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
정수론
정수론 강의에서 6분 54초? 부터 7분 12초? 까지 아무런 소리나 강의에서 움직임이 없는데 저한테만 발생하는 오류인가요..?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F % 연산자 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요,http://boj.kr/2cfc1b2ac7a348b0a78cc5d4fd65ae7c이렇게 풀었는데 계속 틀렸다고 나오네요.알파벳 다 넣어봐도 잘 나오는 것 같은데 어디에 문제가 있는걸까요? 감사합니다.
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
모의고사 7회 2번 송아지 찾기 테스트케이스 3번, 4번 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 문제를 풀던 중에 다른 분도 건의를 한 것 같은데 수정되지 않은 것 같아서 올립니다.테스트케이스에서 송아지의 위치와 웅덩이의 위치가 같은 점이 3번, 4번 테스트케이스에 있습니다.선생님의 코드에서는 bfs를 이용하여 현재좌표에서 3번(1, -1, 5)의 이동에 대한 위치값을 큐에 추가할때만 웅덩이와 방문했던 위치에 대해서 체크하고, 현재위치가 송아지의 위치와 같으면 바로 결과를 출력하지만, 문제 내용을 보면 웅덩이를 현수는 방문할 수 없으므로 웅덩이의 위치에 송아지가 위치한다면 방문할 수 없으므로 오류가 생긴다고 생각합니다. 문제를 수정하거나 테스트케이스를 수정해야할 것 같습니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
int형 변수저장 숫자
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 강사님!섹션 2. 반복문 강의에 @4:35부분에서 "만약 2의 10승이었다면 2의 31승보다 더 큰 숫자가 된다. 그러면 int형 변수에 저장을 할 수 없는 숫자가 된다."이렇게 말씀하셨는데이 부분이 이해가 잘 되지않아서 그런데...혹시 10의 10승을 2의 10승으로 잘못 말씀하신걸까요?감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안을 학습하면서 궁금한 점이 있어서 질문합니다!
Node() { data = 0; next = NULL; } // 위 코드랑 밑에 코드가 같다고 알고 있습니다. Node() : data(0), next(nullptr) {} 혹시 이 두 코드중에 편한것을 사용해도 상관없을 까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요. 큰돌님 질문있습니다.
bool check(int mid) { if (mx > mid) return false; int temp = mid; int cnt = 0; for (int i = 0; i < n; i++) { if (mid - a[i] < 0) { mid = temp; cnt++; } mid -= a[i]; } if (mid != temp) cnt++; return cnt <= m; }위와 같은 코드에서 for문을 계속 돌면서 mid -= a[i]를 해주는데 그 아래문장에서 if (mid != temp)를 검사해주는데 무조건 mid랑 temp는 다르지 않나요?? 코드가 궁금해서 질문드립니다!