묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
dfs로 푸는문제인지 dp로 푸는문제인지 어떻게 구별하나여?
구별이 어려워서 질문드립니다.그래프문제처럼 dfs로 하는줄알고n = int(input()) def dfs(s): global cnt if s > n: return if s == n: cnt += 1 else: dfs(s+1) dfs(s+2) cnt = 0 dfs(0) print(cnt)이렇게 접근했는데 안되더라구여구별방법이 있는건가요?
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
백준 24479 문제 제출 결과 "틀렸습니다" 라고만 나와서 어떤 부분이 틀렸는지 잘 모르겠어요 피드백 부탁드립니다
package com.study.book.graph; import java.util.*; import java.io.*; public class Baekjoon24479 { private static ArrayList<Integer>[] adjList; private static boolean[] visited; private static int[] answer; private static int visitOrder; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); int R = Integer.parseInt(st.nextToken()); adjList = new ArrayList[N + 1]; for (int i = 0; i < adjList.length; i++) { adjList[i] = new ArrayList<>(); } for (int i = 1; i < N + 1; i++) { st = new StringTokenizer(br.readLine()); int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); adjList[x].add(y); adjList[y].add(x); } for (ArrayList<Integer> list : adjList) { Collections.sort(list); } visited = new boolean[N + 1]; answer = new int[N + 1]; visitOrder = R; dfs(R); for (int i = 1; i <= N; i++) { bw.write(String.valueOf(answer[i])); bw.newLine(); } br.close(); bw.close(); } private static void dfs(int now) { visited[now] = true; answer[now] = visitOrder; visitOrder++; for (int next : adjList[now]) { if (!visited[next]) { dfs(next); } } } } 안녕하세요 개취님!알고리즘 강의 잘 듣고 있습니다 ㅎㅎ다름이 아니라, 위 코드로 문제를 풀고 테스트 코드 또한 정상적으로 통과하여 백준에서 제출을 진행했는데, 단순히 "틀렸습니다" 라고만 나와서 어떤 점에서 문제가 있는지 정상적으로 파악이 안되서 문의드립니다!한번 확인 후 피드백 주시면 감사하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다!
큰돌님 혹시 이거는 왜 warning이 뜨는건가요??
-
미해결김영한의 실전 자바 - 중급 2편
배열 링크드리스트
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요.자바 HashSet 구현을 할때 이렇게 링크드 리스트를 이용하여 배열을 만들었는데, 질문이 있습니다. ArrayList 와 LinkedList 중 LikedList 를 사용한 이유는 O(x) 가 더 빠르기 때문인가요 ? 어떠한 장점이 있길래 LinkedList 를 결정한건지 모르겠습니다.제가 추측하기로는 buckets 내의 각각의 인덱스에 링크드 리스트가 필요하기 때문에 배열 타입을 링크드 리스트로 결정한 것인가요 ?
-
미해결김영한의 실전 자바 - 중급 2편
HashSet 최적화
우리가 ArrayList 에서 LinkedList로 넘어온 이유가배열 메모리 확보로 인한 낭비로 인해 경우에 따라서 LinkedList 를 사용해야한다고 알고 있는데, set 에서도 ArrayList 처럼 배열 메모리를 확보해두고 배열의 크기를 2배씩 늘리는 식으로 작동하나요 ?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
초기값 초기화 없이 구현 하는 방법 후에 Top-Down 방식
원래 Top-Down 방식까지 설명하고 알아두면 좋은 내용들로 넘어갔는데Top-Down는 재귀에 익숙하지 않거나 초보자가 하기 어려워서 넘어 가진 건지 궁금해서요!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
긍정왕 홍철이의 구걸 여행 다른 코드 관련 질문
#include<bits/stdc++.h> using namespace std; int dy[]={-1, 0, 1, 0}; int dx[]={0, 1, 0, -1}; int visited[3][3]; int m[3][3]; vector<pair<int,int>> v; int n, ny, nx; void print() { for(auto i : v) cout << m[i.first][i.second] << " "; cout << "\n"; } void go(int y, int x) { if(y == n - 1 && x == n - 1) { print(); return; } for(int i = 0; i < 4; i++) { ny = y + dy[i]; nx = x + dx[i]; // 제약 조건 if(ny >= n || nx >= n || ny < 0 || nx < 0 || visited[ny][nx]) continue; visited[ny][nx] = 1; v.push_back({ny, nx}); // 다음 경로 탐색 go(ny, nx); // 원상 복구 조건 visited[ny][nx] = 0; v.pop_back(); } } int main() { n = 3; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cin >> m[i][j]; } } visited[0][0] = 1; v.push_back({0, 0}); go(0, 0); return 0; } 이건 제가 작성한 긍정왕 홍철이의 구걸 여행 코드입니다.10 20 2170 90 1280 110 120 이렇게 사용자 입력을 받았는데 결과가 인강처럼 여러개가 나오지 않고10 20 21 12 12010 20 21 12 90 110 12010 70 10 20 21 12 120딱 이 3가지만 나오는데 도저히 코드의 문제점을 모르겠습니다. 왜 그런건가요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
메모리 초과가 나는 이유가 궁금합니다!
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의자신은 어떻게 이해했는지DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 안녕하세요 선생님![브루트 포스 알고리즘 : BOJ 1342 행운의 문자열] 문제를 혼자 풀었는데, 메모리 초과를 해결하지 못해 질문합니다..!permutations를 이용하여 풀고, set 함수를 사용하여 중복되는 것이 없도록 했습니다. 혹시 set 함수를 사용해서 메모리 초과가 나온 걸까요..?from itertools import permutations S = input() answer = set() for x in permutations(S, len(S)): ok = True for i in range(len(x)-1): if x[i] == x[i+1]: ok = False break if ok: answer.add(x) print(len(answer))
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
완탐-원복-그래프 정점 탐색 코드 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include<bits/stdc++.h> using namespace std; int visited[4]; vector<int> adj[4]; //** vector<int> v; void print(){ for(auto i:v)cout<<i<<" "; cout<<"\n"; } void go(int from){ visited[from]=1; // 색칠하려고 했는데, 만약 // 사이즈 체크는 겉에서 말고, 들어오고 나서 하는듯 // 1. 기저 조건 if(v.size()==3){ print(); v.pop_back(); int rear=v.back(); go(rear); } // 2. for(auto i:adj[from]){ if(visited[i])continue; v.push_back(i); go(i); } } int main() { // 양방향 간선을 가정한다 adj[0].push_back(1); adj[1].push_back(0); adj[1].push_back(2); adj[1].push_back(3); adj[2].push_back(1); adj[3].push_back(1); v.push_back(0); go(0); } 이건 정답 코드를 보기 전에 제가 작성한 코드인데 어떤 문제점이 존재하는지 알 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 맞왜틀 질문입니다
안녕하세요, 1213번(1-K번) 맞왜틀 질문이 있어 질문 올립니다.마땅한 반례를 제 시간에 떠올리지 못해, 반례에 대한 힌트를 얻을 수 있을까 하여 질문 드립니다. 코드는 아래와 같습니다.http://boj.kr/556e9aa7a033414a80ac86819811d8a7입력된 string의 각 알파벳을 Key, 각 알파벳 개수를 value로 하는 map을 이용하여 풀어보려 했습니다.입력된 string의 각 알파벳 및 알파벳 개수를 _nr_char이라는 map에 저장한 후,_nr_char의 value가 홀수인 것(_odd_nr로 count합니다)이 2개 이상이면 I'm Sorry Hansoo를 출력하게 했고,홀수인 것이 1개라면 29번 라인으로,홀수인 것이 없다면 56번 라인으로 분기하여 처리합니다. 29번 라인은 _nr_char에 저장된 알파벳을 output2란 string에 차례대로 저장한 후,홀수 알파벳을 output2에 마지막으로 push_back으로 저장합니다.이후 output2를 대칭복사한 output를 출력합니다. 56번 라인은 _nr_char에 저장된 알파벳을 output2란 string에 차례대로 저장한 후,output2를 대칭복사한 output를 출력합니다. string을 다루는 부분이 다소 정돈되지 못하여 이해가 어려우실 수 있을 것 같습니다. 양해 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
a.cpp로 바꾸고 명령어 실행해도 안되네요ㅠ
-
미해결김영한의 실전 자바 - 중급 2편
LinkedHashSet 수업
LinkedHashSet 을 수업중에 HashSet 처럼 자세히 다룬 적이 있나요? 아무리봐도 못 찾겠어서요! 왜 LinkedHashSet 이 입력한 데이터대로 출력하는지 코드를 통해 이해를 하고 싶습니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
안녕하세요. 강의 잘 보고 있습니다. 노션에 코멘트
안녕하세요. 알고리즘 종결 급 강의 잘 보고 있습니다.그러나 강의를 보는동안 해당 강의의 노션 페이지에 comment가 보이지 않는것 같습니다. 강의에서는 comment가 정상적으로 있는것 같은데 다른 페이지에는 comment가 보이는데 해당 페이지에서만 안보이네요.강사님의 소중한 자료라 풀 스크린은 올리지 않겟습니다.오른쪽에 comment가 없습니다 ㅠㅠ
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
최적의 개발환경(Sublime Text3) 설치(for windows) 영상부터 꿀팁 전까지 강의가 재생이 안되고 검은 화면만 보입니다.
최적의 개발환경(Sublime Text3) 설치(for windows) 영상부터 꿀팁 전까지 강의가 재생이 안되고 검은 화면만 보입니다.아래 강좌도 검은화면만 보이고 play가 안됩니다.코딩테스트에 필요한 자료구조 총정리 - Python 중간중간 play가 안되는데 어떻게 된건가요???
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문이 있습니다.
http://boj.kr/591d5d47a8284b3ea0f2cc2424f2796a저는 이렇게 풀었는데... 이번에도 역시 반례가.... 모르겠습니다. ㅠㅠ 혹시 시간 괜찮으시면 답변하나 부탁드려도 될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 1213 펠린드롬 질문있습니다.
http://boj.kr/d01d9b144442469eae778012296cc3e1해당 코드가 반례가 뭔지 도저히 모르겠습니다.번거로우시겠지만 한번 부탁드려도 될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 1213 문제 질문
안녕하세요 큰돌님! 강의 잘 듣고 있습니다. 저는 map을 이용하여 풀이를 진행하였는데결과를 배열의 앞뒤로 붙이는 식으로 진행하였습니다. 예제 케이스 같은 경우에는 잘 동작하는데, 실패가 계속 뜹니다.. ㅠhttp://boj.kr/0d0a5bcd94d347e1889351512f3bee6b혼자 힘으로는 어느 부분이 틀린건지 찾기가 쉽지 않네요.. ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
속도 관련 질문
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);랑ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);가 아예 동일할까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문있습니다.
왜 시간복잡도가 O(N * (N + M)) 이해가 되지 않습니다.그리고 최대시간복잡도가 10억인데 그냥 저 시간복잡도로 풀어도 왜 풀리는걸까요..? 보통 1억이 제한으로 생각하라고 아는데 이건 그냥 케바케인건가요..? 시험에서 일단은 무작정 기본으로 풀고 안되면 다른 방법을 생각해야되는걸까요.. 맨처음에 어떻게 접근하고 시간을 줄일 수 있는지 궁금합니다ㅠ
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 문제 bfs로 해도 상관없지않나여?
이 문제 bfs로 해도 상관없지않나여?dfs랑 차이가 있나여??정확히 언제 dfs로 풀고 언제 bfs로 풀어야하는지 모르겟습니다