묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
가중치가 1 이상일 경우~
백준 - 깊이우선탐색 강의에서 "모든 간선의 가중치가 1"이라고 되어 있는데 이게 정확히 무슨 의미 일지요? 가중치가 1 이상이면 이 가중치 정보를 그래프에 담아야 할까요??(구조체 사용)
-
해결됨자바 코딩테스트 - it 대기업 유제
[그리디] 스프링쿨러 입출력 예 answer이 잘못된건가요?
안녕하세요스프링쿨러 입출력 예 answer가 잘못된건지, 제가 문제이해를 잘못한건지 하여 질문드립니다입출력 예 3번째 예제에서n=5, nums = {2, 0, 0, 0, 0, 2} 이고 답 answer은 -1로 기재되어 있습니다nums[0] 과 nums[5] 모두 작동시켰을때(-2,2), (3, 7)에 물을 줄 수 있어, nums[0]가 (0, 1, 2 )에 nums[5]가 (3, 4, 5) 에 물을 줄 수 있고연결해보면 (0,5) 모든 잔디밭에 물을 줄 수 있어 답안이 2가 되어야 한다고 생각합니다혹시 제가 잘 못 이해하고 있는건지, 답이 잘못 기재되어 있는건지 답변 부탁드립니다감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 질문있습니다.
안녕하세요!이 문제를 해결할 때이전에 풀었던 치즈(https://www.acmicpc.net/problem/2636)를 풀었던 방법으로 풀어서 해결했습니다.풀이는 이러합니다.https://www.acmicpc.net/source/62963459이런식으로 푸는 것이 좋은 방법(?)은 아닌지 궁금해서 질문드립니다. 감사합니다.
-
해결됨Python 알고리즘 베스트 10
PDF파일이 어디에 있나요?
안녕하세요PDF파일은 출력하려고 하는데, 노션을 보면"PDF노션 페이지에서 다운로드하실 수 있습니다." 로만 되어있는데다운받을 수 있는 링크는 어디에 있나요?노션에서 전체PDF출력하려면 비지니스라서 불가능한데...확인부탁드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 개념 #7. 문제로 연습하는 시간복잡도 Q5 점화식 관련 질문입니다.
안녕하세요 큰돌님 강의에서 N=3으로 두고 도식화를 하면서 점화식을 작성했는데 1(3^(N+1)-1)/3-1 이라고 강의는 설명합니다. 근데 N=3 일때 cnt=40이 나오게 되므로 점화식은 1((3^(N+1))-1)/(3-1)이 아닌지 여쭤봅니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 시간초과와 range based for
안녕하세요 큰돌님 몸은 괜찮으신지요. 문제를 풀다가 index out of bound도 아닌 segmentation fault가 떠서 헤매고 있습니다.코드 한 번 봐 주시면 감사하겠습니다.http://boj.kr/28b2fc7b2381489fb1ba98f2299c5906 range based for문에서 데이터를 추가해 이상한 값이 들어가 오류가 나는 거 였습니다.cpp에서 range based for문이 어떻게 실행되길래 이런 현상이 발생하나요? range based for에서는 수정도 되지 않던데 말이지요. reference를 읽어도 모르겠어서 여쭈어 봅니다.또한 제 코드가 왜 시간 초과가 나는지 모르겠습니다. dfs두개에 여러 로직들로 O(k(n)^2) 아닌가요? 72 ~ 77라인은 결국 ny, nx가 조건을 만족 할때 하는거라 n^3이 되지않는다고 보입니다. 이 라인들을 64번 for문 밖으로 빼면 72~ 77 라인의 시간 복잡도는 n^2이라고 생각는데 말이지요.http://boj.kr/6eca2b27e3f84a14af220a09ef488606
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K
다른분들의 답변, 교안을 봐도 이해가 가지 않아서 질문드립니다.if(mid)ret.insert(ret.begin() + ret.size() / 2, mid); 위 부분에서 ret.begin()이 들어가야하는 이유를 모르겠습니다.교안을 보면 insert(위치, 문자열)이라고 되어있으니까 insert(ret.size()/2 , mid)라고 하면 되지 않나요?왜 ret.begin()을 빼면 오류가 나는지다른 분들의 답변을 봐도, 오래 고민을 해봐도 도무지 이해가 가지 않아 답답한 마음에 질문드립니다ㅠㅠ
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
Bfs 강의 도입이 시급합니다!!
강의가 너무 좋네요~~ bfs 강의도 올려주실 계획 없나요~~~ (언어는 c++ 어떨지 조심스럽게 말씀드려봅니다 ㅎㅎ)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-G cmp 함수 질문
bool cmp(pair<int,int> a, pair<int, int> b){ if(a.first == b.first){ return mp_first[a.second] < mp_first[b.second]; } return a.first > b.first; }안녕하세요 강의 잘 듣고 있습니다.교안과 모범 답안의 cmp함수의 매개변수로 pair<int,int>가 그대로 들어가는데요?https://www.geeksforgeeks.org/sorting-a-map-by-value-in-c-stl/이 링크를 보면 cmp의 매개변수로 &을 붙여서 레퍼런스를 넘기는데레퍼런스를 넘기던 값을 넘기던 상관없는건가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
미로 최단거리(BFS) 코드리뷰좀 부탁드립니다.
package DFS_BFS; import java.util.Scanner; public class _08_11 { static int[][] board; static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, -1, 0, 1}; // 좌, 상, 우, 하 static int answer = Integer.MAX_VALUE; public void BFS(int L, int x, int y) { if (L >= answer) return; if (x == 7 && y == 7) { answer = Math.min(answer, L); } else { for (int i = 0; i < 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; // 좌상우하 if (nx >= 1 && nx <= 7 && ny >= 1 && ny <= 7 && board[nx][ny] == 0){ board[nx][ny] = 1; BFS(L + 1, nx, ny); board[nx][ny] = 0; } } } } public static void main(String[] args) { _08_11 T = new _08_11(); Scanner sc = new Scanner(System.in); board = new int[8][8]; for (int i = 1; i <= 7; i++) { for (int j = 1; j <= 7; j++) { board[i][j] = sc.nextInt(); } } board[1][1] = 1; T.BFS(0,1,1); if (answer == Integer.MAX_VALUE) System.out.println(-1); else System.out.println(answer); } } 해설하신 Queue 를 이용하지 않고 풀었는데 해설과 비교하였을때 괜찮은 코드인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[5-W] 비트마스킹으로 풀어봤습니다!
#include <bits/stdc++.h> using namespace std; int N, nums[100010], res=INT_MIN; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N; for(int i = 0 ; i < N ; i++){ cin >> nums[i]; } for(int i = 1 ; i < (1<<N) ; i*=2){ // 0001 0010 0100 1000 for(int j = i; j < (1<<N) ; j=(j<<1)+i){ // 0001 0011 0111 1111 int tmp=0; for(int k = 0 ; k < N ; k++){ if(j & 1<<k){ // k 번째 숫자 사용 여부. tmp+=nums[k]; } } res = max(res, tmp); } } cout << res << '\n'; }안녕하세요 큰돌님비트마스킹으로 풀어봤습니다만.. 이미 시간초과입니다.그래도 시간초과라도 나오는 지 보려고 넣어봤는데 그냥 틀렸습니다라고만 떠서 반례를 찾아보려하는데 찾기가 어렵네요 ㅠㅠ이 논리에 어느 부분이 문제인지 궁금합니다 ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8 - C 질문입니다!
안녕하세요!http://boj.kr/56d99e00ded14c1cacbefe3eb07f6db68-C 정답 코드에서 dp 로직의 해당하는 부분이 햇갈려서 질문드립니다. 선생님 코드 링크를 기준으로 line 9~15에 해당하는 부분인데요. cost는 이해했습니다만 real_cost가 잘 이해가 안됩니다ㅠㅠ 지금 필요한 애들이 8명인데 이전에 투입한 애가 10명이면 투입할 필요없어서 (prev >= cost)의 true에 해당하는 부분이 0인건 이해가 잘 되는데 false에 해당하는 부분은 왜 cost인가요?지금 필요한 애들이 11명이고 이전에 투입한 애가 10명이라면 1명만 더 넣으면되니까 real_cost = cost - prev 아닌가싶어서요...이 의문이 return하는 ret에서(line 14~15)도 똑같이 적용되서 투입안한다 = go(here+1, num, 0) 이부분에서 현재 here에서 투입안했어도 prev친구들은 그대로 남으니까 go(here + 1, num, prev)가 아닌가 궁금합니다!물론 제 의문대로 코드를 고쳐서 제출하니까 틀렸습니다ㅠ 제가 아마 선생님 코드를 잘못 이해한 것 같은데 설명 부탁드립니다..! 감사합니다!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Arrays.fill에 Integer.MAX_VALUE로 하면 안되는 거 아닌가용 ..? (10-5 동전 교환 문제)
3 2 3 4 15 라고 했을 때 답이 4가 나와야 되는데Integer.MAX_VALUE로 했을 때는 -2147483645가 나오더라구여 .. 문제랑 채점 사이트에 있는 예제 6개에서 모두 동전 종류에 1이 있어서 오류가 안 뜬 거 같은데동전 종류에 1이 없을 경우 위 예시와 같이 문제가 생길수도 있는거 아닌가용 ..? Integer.MAX_VALUE가 아니라 M 같은 수로 채워야되는 게 아닌가 궁금합니닷
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션 3 수들의 합 문제 제 풀이 어디가 문제인지 한 번만 봐주십쇼
강사님의 풀이랑은 많이 다르지만 논리적으로 문제를 못 찾겠는데, 채점시 틀리는 케이스가 있고, 런타임 오류도 생깁니다. 도움 부탁드립니다.import sys sys.stdin=open("C:/Users/Desktop/AA/섹션 3/5. 수들의 합/in1.txt", 'r') n,m = map(int,input().split()) lst = list(map(int,input().split())) cnt = 0 for i in range(0,len(lst)): for j in range(1,len(lst)): if sum(lst[i:j]) == m: cnt +=1 print(cnt)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
일곱 난쟁이 (조합) 질문입니다
안녕하세요 큰돌 선생님!일곱난쟁이 문제에 0주차때 배운 조합 코드를 적용해서 개인적으로 코드를 작성해보았는데 예제는 잘 통과하지만 백준 홈페이지에서는 오류가 발생해서 질문드립니다.어디가 틀린건지 봐주실수 있나요?? http://boj.kr/0d7e2786d4ef44fe8d5a8d468be2bc4d
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
#5-2 강의 2:56 부분 질문입니다.
안녕하세요. 2분 56초 즈음에 n=4 -> 3이고 n=8 -> 4 에서 log 2^n + 1 이 도출된다고 설명해주셨는데,어떻게 저 로그식이 유도된건지 아이디어가 궁금합니다. 도무지 이해가 안됩니다ㅠ영상에서 입력한 값을 나타내는 n과 등비수열의 공식에서 공비 r의 지수에 쓰인 n은 다른 n 맞죠..?? 전자는 입력한 값을, 후자는 덧셈식에서 항의 개수를 의미하는 것 맞나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-F 질문드립니다.
안녕하세요 강사님!!!아래는 강사님 답안인데요.line 15, 17 에서 배우지 않는 경우(line 17)에만 max로 ret을 갱신하는 이유를 이해하지 못하겠습니다.line 15에서는 max로 ret을 갱신하지 않아도 되는건가요??https://www.acmicpc.net/source/share/7943b7d08dcb4d30bec01eabbf160e77 감사합니다:) - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다
http://boj.kr/65b87eda9f96404baf74fad6bb896f57 aa*dd인 경우를 대비하여 알려주신 split함수를 통해 범위를 분리하고 문자를 비교했습니만, 이번에도 똑같이 오답처리되었습니다. 실행시켰을때 결과도 잘 출력되는데 어디가 잘못되었는지 잘 모르겠습니다. 감사합니다.
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
프로그래머스 가장 긴 팰린드롬
이 문제와 프로그래머스 가장 긴 팰린드롬 문제는 다른건가요..? 프로그래머스에서 돌리면 틀리네요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1940 주몽 시간복잡도
http://boj.kr/7e9d3dcea50f42d6b98de1ab7d2db8411.선생님 풀이를 보면 문제를 2중 For문으로 해결하셨는데, n의 범위가 o<n<=15000 인데, 이렇게 되면 최악의 경우 시간복잡도는 O(n^2)이고 -> 2억2500번 제한시간이 2초니까 2억번안에 해결이 안되서, 시간초과 오류가 나올 것 같은데 pass 되는게 신기합니다 .제 풀이는 재귀함수로 풀었는데 이또한 시간복잡도를 구해보지는 않았지만, 시간초과가 아슬아슬할 것 같은데 넉넉하게 380ms로 통과하는게 의아합니다.