묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-F 해설이해
안녕하세요 선생님 강의를 보고 살짝 헷갈리는 부분이 있어 질문드립니다.Q1. 사진은 선생님이 설명해주실때 그려주신건데, 왼쪽 num[1] oper[1] num[2] 이 부분이 괄호를 쳐서 연산해주었다고 생각해도 되는건가요?즉 제가 이문제를 접근할때 완전탐색으로 재귀호출시에 1. 괄호를 묶거나 2. 괄호를 묶지 않거나 이렇게 두가지로 생각을 해서 호출을 하려 했습니다.사진의 오른쪽은 그냥 현재 인덱스와 그 다음 인덱스를 연산하는것이기 때문에 왼쪽부터 오른쪽으로 연산하는것 이기에 괄호연산을 하지 않았다고 판단했고, 왼쪽은 오른쪽에서 부터 왼쪽으로 연산을 했기 때문에 괄호 연산을 한것이라고 판단하였습니다.근데 이번 인덱스를 먼저 계산하는 것이기 때문에 그 반대가 맞는것 같기도 하네요..Q2. 그리고 또 질문은 만약 괄호를 추가하냐 추가하지 않느냐 이렇게 두가지로 가정한다면 재귀호출후 원복하는 부분이 필요할것 같은데 그 부분이 왜 따로 없는지도 궁금합니다.-> 이 부분 제가 생각해 보았는데, visited 등과 같은 전역변수 배열은 한번 체크하면 재귀 탈출후에도 체크가 남아있어서 따로 지우는 로직이 필요한 것이고, 이번 문제의 경우는 재귀함수에서 하나의 함수를 탈출하면 재귀의 특성때문에 자동적으로 선택하기 이전으로 돌아가기 때문에 따로 뭔가를 지우는 로직이 필요없는것인가요? 혹시 제가 생각한것이 맞는 생각인건가요? 아니면 아예 접근을 그런식으로 하면 안되는건가요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
K번째 큰수 코드 작성중 3중 for문
안녕하세요 K번째 큰수 코드 작성중 3중 for문 만들때 아래와 같은 경우 에러가 발생하지 않을까 해서 break나 continue 를 넣어야 하지 않나 하는 생각이 들어 여쭙니다for i in range(n): for j in range(i+1, n): for m in range(j+1, n): res.add(a[i]+a[j]+a[m])range 가 5인 경우 i, j, m이 0, 3, 4 이후 0, 4, 5 일 때 이 경우 다른 답변에서는 for문이 멈춰버린다고 답변주셨는데 continue처럼 이 경우 작동하지 않고 다음 순환으로 넘어간다고 생각하면 될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[알고리즘교안]pop_back, auto 관련 질문
안녕하세요. 알고리즘 교안에서 string 부분 중 코드 컴파일이 안되서 질문드립니다.코드는 다음과 같습니다.#include <bits/stdc++.h> using namespace std; int main(){ string a = "love is"; a += " pain!"; a.pop_back(); cout << a << " : " << a.size() << "\n"; cout << char(* a.begin()) << '\n'; cout << char(* (a.end() - 1)) << '\n'; // string& insert (size_t pos, const string& str); a.insert(0, "test "); cout << a << " : " << a.size() << "\n"; // string& erase (size_t pos = 0, size_t len = npos); a.erase(0, 5); cout << a << " : " << a.size() << "\n"; // size_t find (const string& str, size_t pos = 0); auto it = a.find("love"); if (it != string::npos){ cout << "포함되어 있다." << '\n'; } cout << it << '\n'; cout << string::npos << '\n'; // string substr (size_t pos = 0, size_t len = npos) const; cout << a.substr(5, 2) << '\n'; return 0; }위 코드 실행시 std::string has no member named 'pop_back' 와 'it' does not name a type 오류 메세지를 받습니다.검색해보니까 C++11이상 버전이 아니라서 그렇다는데 교안 첫 부분에 알려주신대로 C++14버전으로 컴파일 할 수 있게 설정을 한 상태입니다. 어떤게 문제인지 알려주시면 감사하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제 리스트(파트에서 어떤 문제 푸는지) 한번에 나와있는건없나요?
문제 리스트(파트에서 어떤 문제 푸는지) 한번에 나와있는건없나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 시간초과 문의드립니다.
https://www.acmicpc.net/source/61767351 처음에 선생님이 알려주신 알고리즘은 전혀 생각 못해서초기에 했던 방법인데요,순열을 이용하면서시간초과 안 나오게 하는 방법이 있을까요?^^
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-k
http://boj.kr/03290916701f4404a5a123bd6b4553aa선생님 제가 짜본 코드인데 왜 시간초과가 나는지 모르겠습니다. 감사합니다!!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점 사이트 더이상 지원 안 하나요?
원래 강의 수강 화면 우측 상단에 채점 사이트 버튼이 있었는데 사라졌네요https://cote.inflearn.com/ 으로 바로 접속을 시도해도 로그인 하라고만 계속 뜹니다...버튼을 클릭해서 접속해야 로그인이 된 상태로 접속이 되는 것 같습니다.감사합니다.추가: 혼란을 야기해서 죄송합니다. 인프런 PC 환경에서 문제가 좀 있는 것 같네요. 모바일로 접속하면 채점 버튼이 잘 보이는데 PC 환경에서는 강의 자료 및 채점 버튼 모두 안 보입니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F 질문
http://boj.kr/3b4b7ecd25584d88aa330a92277594f5스캔으로 받았는데 출력형식이 자꾸 다르다고하네요 무엇이 문제일까요??겟라인으로 받으면 세그먼트폴트가뜹니다
-
미해결코딩테스트 [ ALL IN ONE ]
파이썬 가비지 컬렉터 질문입니다.
[코테 적용] 👉 연결리스트 구현 (전반부) 30분 50초 내용 질문입니다.visit을 하게되면 원래 next 노드가 참조되지 않으면서 메모리 해제 된다고 하셨는데 이중 연결 리스트 같은 경우는 그 노드의 다음 노드가 prev로 참조하고 있는데 이 경우 어떻게 되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1012 - 반례를 모르겠습니다. JAVA
안녕하세요. 큰돌님 강의 잘 보고있습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static int[][] board; static boolean[][] visited; static int[] dy = {-1, 0, 1, 0}; static int[] dx = {0, 1, 0, -1}; static int yLen; static int xLen; static int cnt; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); while (n-- > 0) { int[] given = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); if (given[2] == 1) { sb.append(1).append(System.lineSeparator()); continue; } board = new int[given[0]][given[1]]; visited = new boolean[given[0]][given[1]]; yLen = given[0]; xLen = given[1]; for (int i = 0; i < given[2]; i++) { String[] numStr = br.readLine().split(" "); int y = Integer.parseInt(numStr[0]); int x = Integer.parseInt(numStr[1]); board[y][x] = 1; } for (int i = 0; i < yLen; i++) { for (int j = 0; j < xLen; j++) { if (!visited[i][j] && board[i][j] == 1) { dfs(i, j); cnt++; } } } sb.append(cnt).append(System.lineSeparator()); } System.out.print(sb.substring(0, sb.length() - 1)); } public static void dfs(int y, int x) { visited[y][x] = true; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= yLen || nx < 0 || nx >= xLen) continue; if (visited[ny][nx] || board[ny][nx] == 0) continue; dfs(ny, nx); } } }위 코드를 실행하면 12%, ArrayIndexOutOfBounds가 발생하는데 어떤 부분인지 알 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-a 재귀 조합 순열없이 풀어봤는데요
http://boj.kr/e2cc8079959e434fb04a9022bc8143ab솔직히 시간도 오래걸렸고 많이 비효율적인거같습니다고로 1주차부터의 공부방향이 궁금합니다먼저직접 풀어보고 선생님께서 알려주신 방법들로도 전부 풀어보고 되도록 많은풀이법을 사용해보고 최적의 풀이를 빠르게 도출해내는 방향으로 공부하면 될까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어봤는데, 시간 복잡도가 많이 증가하는 코드 일까요?
(사진)
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
이렇게 푸는건 효율적이지 못할까요?
def solution(nums): answer = -1 count = [0] * 1001 for x in nums: count[x] += 1 for y in range(len(count)): if count[y] == 1: if answer < y: answer = y return answer안녕하세요.선생님 코드와는 두번째 for문의 구현이 조금 다른데 이런 방식도 문제 없는지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-D 시간복잡도 질문입니다.
안녕하세요 선생님.lower_bound나 upper_bound의 경우 vector의 크기가 n이면 시간복잡도가 n일 것 같은데이 문제의 경우에for(int i = 0; i < n; i++){ auto pos = lower_bound(v.begin()~~~)~~~`}이면 시간 복잡도가 n^2로 이분탐색하는 것보다 더 클 것 같은데 맞나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-0 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/07ed32a221874496820c25211823021a선생님 안녕하세요 강의 덕분에 많은 도움을 받고 있습니다.제가 쓴 코드에서 1번으로 하면 정답이 안나오는데 이유를 잘 모르겠어서 질문을 드립니다. 비록 부족한 지식에 정보 공유 부탁 드리겠습니다
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
다익스트라에서 반대로 최장 거리를 구하는 코드에 대해 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. class Node implements Comparable<Node>{ int v; int c; Node(int v, int c){ this.v=v; this.c=c; } @Override public int compareTo(Node o) { return o.c-this.c; //최장거리를 구해야하니까 기존과 반대로 }}public class Main { public static int[] dis; public static ArrayList<Node>[] graph; public static int n,m; public static void dij(int s) { PriorityQueue<Node> q = new PriorityQueue<>(); q.offer(new Node(s,0)); dis[s] = 0; while(!q.isEmpty()) { Node tmp = q.poll(); int now = tmp.v; int nowcost = tmp.c; if(nowcost<dis[now]) continue; //기존과 반대 for(Node ob : graph[now]) { if(dis[ob.v]<nowcost+ob.c) { //기존과 반대 dis[ob.v]= nowcost+ob.c; q.offer(new Node(ob.v, nowcost+ob.c)); } } } } 만약 문제에서 최단거리가 아닌 최장 거리를 구하라면 클래스의 정렬 순서와 다익스트라 메소드를 기존과 반대로 구현하면 될까요??
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니다!!
안녕하세요 선생님!강의를 듣기 전에 혼자 풀어보았습니다.이중 for문으로 풀어서 시간복잡도 상으로는 좋지 않을 것 같은데 이것도 괜찮은 코드일까요? function solution(k, arr) { let answer = 0; let sum = 0; let check = 0; for (let i = 0; i < arr.length - 2; i++) { for (let j = 0; j < k; j++) { sum += arr[i + j]; check += 1; } answer = Math.max(answer, sum); sum = 0; check = 0; } return answer; } let a = [12, 15, 11, 20, 25, 10, 20, 19, 13, 15]; console.log(solution(3, a));
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
입력값만 scanf로 받았는데 백준에서는 틀렸다고 나오는데 한번봐주세요..
입력 받을때만 scanf로 문자열을 받았는데 백준에서는 틀리다고 나옵니다.한번봐주실 수 있나요?입력과 출력은 맞는걸 확인했습니다. http://boj.kr/0e2343838c434d4ea9bf1074afce3aac
-
미해결더 개발자, 인터뷰 가이드
안녕하세요. 깃발 보고 싶은데
어떻게 해야 할까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
shortest_path에 대해 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. shortest path문제 풀때 다익스트라로 풀거나, 크루스칼로 풀거나 똑같은건가요??아니면 문제에서 다익스트라로 풀어야 하는지, 크루스칼로 풀어야하는지 힌트가 있나요???