묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
인접 행렬 다른 풀이
#include <bits/stdc++.h>using namespace std;bool V[10][10];bool visited[10];void dfs(int start) { if (visited[start]) return; visited[start] = true; cout << start << ' '; for (int dir = 0; dir < 10; dir++) { if (V[start][dir] && !visited[dir]) { visited[dir] = true; dfs(dir); } }}int main() { cin.tie(0)->sync_with_stdio(0); V[1][2] = true; V[2][1] = true; V[1][3] = true; V[3][1] = true; V[3][4] = true; V[4][3] = true; for (int i = 0; i < 10; i++) { dfs(i); cout << '\n'; } return 0;}이렇게 짜도 되나요?
-
해결됨코딩테스트 [ ALL IN ONE ]
문제풀이 singly linked list - head&tail에서 '마지막 노드 제거'하는 함수 부분
안녕하세요~ 요즘 파이썬 알고리즘에 대해 알아가는게 선생님 덕분에 너무 재미있습니다!그런데 선생님이 제공하신 문제풀이 singly linked list - head&tail에서 '마지막 노드 제거'하는 함수 부분이 혹시 잘못된 것인가 해서 여쭈어 봅니다. # 시간복잡도 O(n) def remove_back(self): current = self.head last_index = self.size - 1 for _ in range(last_index - 1): current = current.next_ current.next_ = current.next_.next_ self.tail = current.next self.size -= 1 함수에서 나오는 self.tail = current.next로 되어있는데,self.tail = current로 작성해야 하는게 아닐까요?혹시 제가 틀렸다면 설명해 주시면 감사하겠습니다~
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문있습니다.
입력을 받을 때마다 조건문 돌려서 판별할 생각을 못하고 배열로 다 받아서 했더니 문제를 더 어렵게 풀어버렸습니다. 음.. 강의 코드 보면서 제가 푼 문제가 이렇게 쉽게 풀릴 수 있는 문제구나라고 알게 되었습니다.혹시 제 코드에 문제점이 있는지 확인해주실 수 있으신가요? 채점 파일에서는 다 맞았다 뜨는데 혹시 몰라서 질문 드립니다. 좋은 강의 항상 감사드립니다. 강의 보면서 열심히 공부하겠습니다.#include <iostream> #include <stdio.h> #include <string> #include <fstream> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(false); int n; cin >> n; vector<int> table(n); for (int i = 0; i < n; i++) cin >> table[i]; int max = 1; int cnt = 1; int idx = 0; int prev = table[0]; int count = 1; while (idx + count < table.size()) { if (table[idx + count] >= prev) { cnt++; } else { idx = idx + count; cnt = 1; count = 0; } prev = table[idx + count]; count++; if (cnt > max) max = cnt; } cout << max << "\n"; return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-J 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/604e8201aae24300845cde414a1f4416http://boj.kr/604e8201aae24300845cde414a1f4416선생님 강의보고 생각하면서 유사하게 만들어봤는데 틑렸다고 나옵니다 ㅠㅠ 정답 코드랑 비교해도 어떤 부분이 틀렸는지 확인이 안되서 ㅠㅠ 질문 남깁니다. 감사합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드 질문 있습니다.
8.팰린드롬 문제 관련 입니다.String temp = new StringBuilder(str).reverse().toString();이 부분에서 스트링빌더를 문자열로 다시 바꿔주는데문자열을 왜 다시 문자열로 바꿔주는지 이해가 안갑니다.. 인풋값으로 문자열이 아닌 다른값을 받아왔을때를 위한 코드인지 궁금합니다.- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨김영한의 실전 자바 - 중급 2편
3. 컬렉션 프레임워크 - ArrayList 강의 교안 오타 제보
[오타 제보 내용]3. 컬렉션 프레임워크 - ArrayList 교안 pdf직접 구현하는 배열 리스트2 - 동적 배열배열의 크기를 초과할 때(5) 이렇게 증가된 배열에 데이터를 추가하면 된다. 물론 데이터가 추가되었으므로 size 도 하나 증가시킨다.기존 배열( x001 )은 더는 참조하는 곳이 없으므로 GC의 대상이 된다.그림에서는 x100으로 나와있는데, 교안에는 기존 배열의 주소를 x001로 표시하고 있습니다.기존 배열의 주소값 확인 부탁드립니다.직접 구현하는 배열 리스트3 - 기능 추가주제 내용 맨 첫 부분에 나오는 add(Index, 데이터)와 remove(Index)의 파라미터가 Index라고 I가 대문자로 나와 있습니다.i(소문자) 확인 부탁드립니다.감사합니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
BOJ23246
N = int(input())words = [list(map(int, input().split())) for _ in range(N)]medal = sorted(words, key= lambda x : (x[1]*x[2]*x[3], x[1]+x[2]+x[3]))for i in range(0,3): print(medal[i][0], end = ' ') 다음은 제가 짠 코드입니다. n = int(input())infos = [list(map(int, input().split())) for _ in range(n)]infos = sorted(infos, key=lambda x : (x[1] x[2] x[3], x[1] + x[2] + x[3], x[0]))for b, p, q, r in infos[:3]: print(b, end=' ') 이건 알리님 코드인데요,마지막 for문 빼고는 똑같은데, 이상하게 제거는 틀렸다고 뜨네요.시간 복잡도 때문일까요?? 이유 알려주시면 감사하겠습니다
-
미해결독하게 C를 배운 사람을 위한 선형 자료구조
CPU의 다른 이름 Machine 강의 질의
안녕하세요.강의를 보다가 학습과는 크게 상관없는 부분이지만 잘못 언급을 하신것 같아서 질문 게시판에 글을 남깁니다.UNIX 운영체제를 만드신, 켄톰슨 선생님이 돌아가셨다고 얘기하시는 부분이 있는데켄톰슨 선생님이 아니고 데니스 리치 선생님을 얘기하신다는게 잘못 얘기하신게 아닌가 생각이 듭니다.별거 아니긴 한데, 멀쩡히 살아계시는데 돌아가셨다고 하신 부분이 그냥 찝찝해서 글 남깁니다. 좋은 하루 되세요!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 재질문
선생님 답변 감사합니다답변 확인후에 BFS로 수정해보았는데여전히 시간초과가 발생이 되네요..제가 보기엔 효율을 좋게 했다고 생각하는데왜 새로운 코드에서도 시간초과가 계속 발생하는지 답변 부탁드립니다...모르겠어요...gpt는 선생님 코드와 제 코드 비교했을때 시간복잡도 측면은 별차이 없다고 하는데 말이죠.. http://boj.kr/9dbda62580614b358e26e41ec3073620
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-p 순서 혼란
x,y 순서가 혼란이 옵니다.이 문제에서처럼 pair에 (first,second)를 넣는 상황이라던지 ny, nx의 범위를 따질때 ny>=n인지 ny>=m인지 혼란이 와서 정리를 하려고 합니다.큰돌님께서는 (y,x) 순서를 기반으로 dfs bfs를 만드시는데 main이나 solve에서는 i,j 순서로(n,m 순서로) 입력받고 처리하시는거 같아 문의드립니다.dfs bfs 이외에 코드에서는 다 반대로 i,j를 x,y 순서로 받는 방식으로 맵이나 리스트를 생성 한 후 탐색만 y,x 방향으로 하시는건가요?n,m이 같은경우는 상관없을거같은데 이와같이 n,m이 다른경우 (x,y),(i,j),(n,m),(first,second) 등등 순서에 있어서 자주 실수를 해서 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-M 질문 있습니다.
안녕하세요 큰돌님, 강의 잘 듣고 있습니다.7-M의 시간복잡도 계산에 관해 질문드리고 싶습니다.큰돌님은 본 문제를 풀 때 시간복잡도를 어떻게 계산했는지 궁금합니다.특히 각 칸에서 양분을 줄 때, 나무의 개수가 명확하지 않은 상태해서 sort를 해야하는데, 이때 sort의 시간복잡도인 O(NlogN)에서 N을 어떻게 설정하셨는지 궁금합니다.감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 메모리초과 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.dfs에서 2차원 벡터를 계속 복사하는 방식을사용했는데 메모리 초과가 떴습니다벡터를 계속 복사해서 그런걸까요?아님 무엇때문에 메모리 초과가 난걸까요?http://boj.kr/10f3e6d1d9744b5286cd33479677c430
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간초과가 나와서 질문드립니다.
강사님의 영상은 문제를 풀고 난 후, 잘 안 풀릴 때 보는게 좋은 것 같아 저만의 방식으로 푼 코드입니다.시간초과가 나왔는데, 어디서 시간을 잡아먹는건지 감이 잡히지 않아서 글 올립니다.포켓몬이 알파벳으로 주어지는지, 숫자로 주어지는지에 대한 판별은 string으로 값을 받고 0번째 인덱스의 값이 65와 같거나 크고 90과 같거나 작으면 알파벳이라 판단. 아닐경우 숫자로 판단하여 출력하게 하였습니다.아래가 제 코드입니다.http://boj.kr/93f1ddafe1484c2b892e25729c745365
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 다른 풀이
저는 deque를 사용해서 풀었는데 이 풀이 방법이 괜찮나요??#include <bits/stdc++.h>using namespace std;string name;int cnt[26];deque<char> answer;int main() { cin.tie(0)->sync_with_stdio(0); cin >> name; for (int i = 0; i < name.size(); i++) { cnt[name[i] - 'A']++; } int check = 0; for (int i = 0; i < 26; i++) { if (cnt[i] % 2 == 1) { check++; answer.push_back('A' + i); cnt[i]--; } if (check > 1) { cout << "I\'m Sorry Hansoo"; return 0; } } for (int i = 25; i >= 0; i--) { while (cnt[i] > 0) { answer.push_back('A' + i); answer.push_front('A' + i); cnt[i] -= 2; } } while (!answer.empty()) { cout << answer.front(); answer.pop_front(); } return 0;}
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 질문있습니다
http://boj.kr/5a173f75eb094fd0a5ffef8f9387af5e다음과 같이 코드를 작성했습니다.백준에서 56%정도 됬을때 틀렸다고 나오는데제가 생각한 틀린 이유로는무조건 ()를 추가한다. 전체가 압축이 가능한 경우에도전체를 검사하고 4등분을 해야하는데 4등분한 것부터 검사한다.인거 같습니다. 혹시 이 이유로 틀린게 맞을까요??저기서 조금 수정해서 답이 나오려면 어떤부분을 어떻게 고쳐야 할까요??
-
미해결김영한의 실전 자바 - 중급 2편
문제와 풀이4 - Queue
안녕하세요 영한님 🙂 항상 감사한 마음으로 강의 잘 듣고 있습니다 ㅎㅎ별거 아닌 오탈자이긴 한데, 큐 두번째 문제에서 실행 결과 부분 오탈자가 있어서 말씀드립니다! "작업 시작" -> "==작업 시작==""작업 완료" -> "==작업 완료=="
-
미해결세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
BOJ6603질문있습니다!
안녕하세요.문제 풀다가 강의랑 백준 페이지에서는 입력할수 있는 k의 범위가 서로 달라서 궁금해서 여쭤봅니다.!!백준 페이지에서는 입력할 수 있는 k의 범위가 6<k<13인데요 강의나 노션에서는 제약 조건이 6 <=k <= 13인데 혹시 시간복잡도를 구하기 위해서 일부러 범위를 이렇게 잡은 건지 혹시 다른 이유가 있는지 알려주실 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H질문
bool is_vowel(int idx) { return (idx == 'a' || idx == 'e' || idx == 'i' || idx == 'o' || idx == 'u'); }bool is_vowel(int idx) { if (idx == 'a' || idx == 'e' || idx == 'i' || idx == 'o' || idx == 'u') return true; else false;}이 두 코드가 같다고 생각이 드는데 왜 결과값이 다르게 나올까요??
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
graph
dfs 영상을 쭉 보고있는데요 ㅎ문제들 마다 규칙이거의 무조건적으로 visited 와 2차원 graph 가 생성이 되나요 ??visited = []graph = [[False] *MAX for _ in range(MAX)]2. MAX 를 두시는 이유가 뭔가요 ??
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
재귀 함수 Depth
영상에서 23:48 부분 보고있는데요.칼럼 2에 5를 제일 하단에다가 적었는 이유가 어떤 규칙이 있는건가요 ??그리고 5 옆에는 비워두고 1 ( 무시 ) , 2 ( 무시 ) 6을 적으신것도 어떤 규칙이 있는건가 ? 궁금해서 여쭤봅니다 !