묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
index로 말고 값으로 하는 것은 안되는 건가요?
인덱스가 아닌 값으로 코드를 짜봤는데, 틀렸다고 나옵니다.혹시 반례가 있을까요..?```javapublic class Main { public static int n; public static int[] arr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); n = Integer.parseInt(br.readLine()); StringTokenizer stk = new StringTokenizer(br.readLine()); arr = new int[n+1]; for (int i = 1; i <= n; i++) { arr[i] = Integer.parseInt(stk.nextToken()); } Stack<Integer> stack = new Stack<>(); int[] ret = new int[1000004]; Arrays.fill(ret,-1); for (int i = 1; i < arr.length; i++) { while(stack.size()>0 && stack.peek() < arr[i]){ // 0보다 ret[stack.pop()] = arr[i]; // 빼주고 } stack.push(arr[i]); } for (int i = 1; i < arr.length; i++) { sb.append(ret[arr[i]]); sb.append(" "); } System.out.println(sb); } }```
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
일곱난쟁이 재귀함수 조합으로 풀어봤습니다.
http://boj.kr/144b46706d6843d0b3b3f14cd01b8319강의로 알려주셨던 조합 재귀함수를 활용하여 풀어봤습니다. 난쟁이들의 키를 담을 배열을 a, 9 C 7 을 가동하기 위해 인덱스를 담을 벡터 b를 선언하였고 함수 Combination의 기저사례 안에서 배열들의 전체 합이 100일 경우 주어진 조건대로 출력한 후 함수를 강제종료 할 수 있도록 구현했습니다. 예제에 주어진 숫자들을 대입하면 정상적으로 결과가 나오는데, 저지에서는 틀렸다고 나오네요ㅠ 반례나 제 코드의 문제점 지적해주시면 감사하겠습니다 선생님ㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문 있습니다.
BFS를 이용해서 풀어 보았는데 테스트 케이스는 맞다고 나오는데 답은 틀리다고 나옵니다. 큰돌님이 보셨을 때 어디가 잘못 된건지 확인 부탁드립니다! 감사합니다http://boj.kr/302772ea3b54465dab9ebb0d922a9029
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A BFS 질문 있습니다.
블로그에 있는 수도코드1로 한번 풀어 보았는데 답이 이상하게 나오네요. 코드 리뷰 한번 부탁드립니다!http://boj.kr/08aeaf1fe1634cfcb5a73c100c2fa3d5
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문드립니다
http://boj.kr/0e272314ac6d47b4ba99ee597fb5b23f 안녕하세요! 1-G 문제의 코드를 짜고나서 강사님과 비교해보니 알고리즘이 거의 차이가 없는 것 같은데 계속 틀렸다고 나와서 질문을 남깁니다.어떤 문제가 있는 걸까요...?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8 - I 코드내용 질문입니다!
안녕하세요 선생님 수업 열심히 듣고있습니다!http://boj.kr/44c2eee4e7d84583b105ede311497d38선생님 코드에서 line 37~47까지 잘 이해가 되지 않아 질문드립니다.문제를 어떻게 풀어야하는지에 대해서는 이해했습니다. 그래서 left, right로 나누는 것도 이해했고 tree_cnt, tree_sum으로 이전의 나무의 개수, 이전 나무들의 합을 구하는 것도 이해가 됐는데왜 value++을 하는건가요? 현재 심는 나무의 값을 그대로 사용해야될 것 같은데.. 잘 이해가 안됩니다ㅠㅠsum(tree_cnt, 1, value-1)에서 왜 value-1이 들어가는건가요? 제 생각에는 현재 위치까지를 파악해야하니까 i가 들어가야할 것 같은데...(물론 코드를 고쳐서 돌려보니 틀렸습니다) 잘 이해가 되지 않습니다... 비슷하게 다른 sum함수들의 인자에도 왜 max_n이 들어가는지 value + 1이 들어가는지 잘 모르겠습니다...펜윅트리 너무 어렵네요... 강의 내용 반복해서듣고 외웠는데 정말 쉽지 않은 것 같습니다..ㅠㅠ설명을 부탁드려도될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-S 질문드립니다.
안녕하세요 큰돌강사님!!하나 궁금한게 있습니다...앞서 완탐의 형태는 방문-재귀-원복의 형태로 이뤄진다고 알려주셨는데요.이 문제에서는 파라미터로 plus , minus, mul, div 를 모두 넘겨주기 때문에 원복이 필요치 않은건가요??미리 감사드립니다:) - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하십니까 선생님 3-J 질문 있습니다!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/ea31d03e749244328d0e26de193f4b9c이 코드를 제출하면 컴파일 에러나고, y1을 다른 글자로 바꾸면 제출이 되는데 왜 그런건지 궁금합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백준 그룹스터디 같이 하실 분 구합니다
의지박약으로 3주차 부터 밀린 직장인입니다..그룹 같이 하실 분 있으실까요.. (3~4명 정도)규칙을 만들어 소액의 벌금도 생각 중 이에요. 같이 만들었으면 좋겠어요! https://open.kakao.com/o/gF9qPCtf
-
해결됨[자바/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'; }안녕하세요 큰돌님비트마스킹으로 풀어봤습니다만.. 이미 시간초과입니다.그래도 시간초과라도 나오는 지 보려고 넣어봤는데 그냥 틀렸습니다라고만 떠서 반례를 찾아보려하는데 찾기가 어렵네요 ㅠㅠ이 논리에 어느 부분이 문제인지 궁금합니다 ㅠㅠ