묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제 리스트(파트에서 어떤 문제 푸는지) 한번에 나와있는건없나요?
문제 리스트(파트에서 어떤 문제 푸는지) 한번에 나와있는건없나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 시간초과 문의드립니다.
https://www.acmicpc.net/source/61767351 처음에 선생님이 알려주신 알고리즘은 전혀 생각 못해서초기에 했던 방법인데요,순열을 이용하면서시간초과 안 나오게 하는 방법이 있을까요?^^
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-k
http://boj.kr/03290916701f4404a5a123bd6b4553aa선생님 제가 짜본 코드인데 왜 시간초과가 나는지 모르겠습니다. 감사합니다!!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
게임 프로그래머 입문 올인원 vs c++ 언리얼
C++ 언리얼 part 1, 2수강하고 진행을 못하다가 지금 다시 하려고 보니 게임 프로그래머 입문 올인원 이 나왓던데 차이가 있는건가요? 아니면 1,2 햇으니 연재가 중단됫던데 part3,4를 마져 보는게 나을까요?아니면 UE5로 넘어가는게 나은가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F 질문
http://boj.kr/3b4b7ecd25584d88aa330a92277594f5스캔으로 받았는데 출력형식이 자꾸 다르다고하네요 무엇이 문제일까요??겟라인으로 받으면 세그먼트폴트가뜹니다
-
미해결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주차부터의 공부방향이 궁금합니다먼저직접 풀어보고 선생님께서 알려주신 방법들로도 전부 풀어보고 되도록 많은풀이법을 사용해보고 최적의 풀이를 빠르게 도출해내는 방향으로 공부하면 될까요?
-
해결됨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번으로 하면 정답이 안나오는데 이유를 잘 모르겠어서 질문을 드립니다. 비록 부족한 지식에 정보 공유 부탁 드리겠습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
입력값만 scanf로 받았는데 백준에서는 틀렸다고 나오는데 한번봐주세요..
입력 받을때만 scanf로 문자열을 받았는데 백준에서는 틀리다고 나옵니다.한번봐주실 수 있나요?입력과 출력은 맞는걸 확인했습니다. http://boj.kr/0e2343838c434d4ea9bf1074afce3aac
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
#3-D 반례 질문
http://boj.kr/be44657dbfb64b30ace731e5969c07713-D 번 문제 질문드립니다계속해서 84%에서 틀렸다고 해서 많은 반례들을 넣어봤는데도 해결이 되지 않아 질문드립니다. 제가 풀이한 방식은 우선 선생님처럼 사람 visited 배열, 불 visited 배열 두가지를 만들어 따로 처리해주었고, 하나의 queue를 이용하여 먼저 불을 넣고 그 다음 사람을 넣어서 while 루프를 돌려서 최단거리를 찾았습니다.만약 사람이 이동하는 곳에 불이 이미 있으면 이동하지 않고, 불이 없고 벽도 없을경우 이동하고 만약 이동한 곳이 가장자리이면 탈출하여 최단거리를 출력하는 방식입니다. 또한 bfs이므로 가장 처음 나오는 답이 최단거리라 판단하여 곧바로 break를 걸고 출력하였습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-h
선생님 수업 잘듣고있습니다. 다름이 아니라 선생님께서 푸신 방법 말고 if(!visited[next]){ q.push(next); visited[next]=visited[now]+1; cnt[next]+=cnt[now]; v[next].push_back(now); }이런식으로 인접 리스트를 만들어서 구현을 해보고싶은데 계속해서 에러가 발생됩니다. 도와주실 수 있으신가요? 감사합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 질문있습니다
안녕하세요, 큰돌님강의와 비슷한 로직인것 같은데, 메모리초과 되어 질문합니다!메모리초과가 나는 이유를 모르겠습니다ㅣ. K가 10일때, 2^1024만큼 go함수를 호출해서 틀린건가 싶기도 합니다...
-
미해결홍정모의 따라하며 배우는 C++
char *name vs const char *name
안녕하세요,전자는 에러나고 후자는 ok인데, 그 이유가 "string literal은 constant array of chars이므로, pointer 또한 const이어야 한다"라고 다른 곳에서 설명을 봤습니다.(https://stackoverflow.com/questions/61601872/why-do-string-literals-char-in-c-have-to-be-constants)이 설명과 "기호적 상수"개념이 어떻게 연결될 수 있는지 궁금합니다. (사실 지금 예시에서 "기호적 상수"가 어떤 의미인지 제대로 모르겠습니다.)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[2-D] 답안 관련 질문
안녕하세요. 강사님2-D 답안을 보면서 질문이 있습니다.해설 강의에서 설명한 DFS 반환값 설정과 DFS 로직은 이미 이해한 상태에서 해당 문제를 접했는데요.제가 답안을 보고 수정 및 작성한 코드는 아래입니다./* 답 : http://boj.kr/9815cd371fe643f59ac17a410e0cfca4 */ #include <bits/stdc++.h> using namespace std; int M, N, K; int m[104][104]; bool visited[104][104]; vector<tuple<int, int, int, int>> c; int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, 1, 0, -1}; int dfs(pair<int, int> node) { int count = 1; visited[node.first][node.second] = true; for(int i = 0; i < 4; i++) { int nx = node.first + dx[i]; int ny = node.second + dy[i]; if(nx < 0 || nx >= N || ny < 0 || ny >= M) continue; if(!m[nx][ny] && !visited[nx][ny]) count += dfs({nx, ny}); } return count; } int main(void) { cin >> M >> N >> K; for(int i = 0; i < K; i++) { int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; c.push_back({x1, y1, x2, y2}); } fill(&m[0][0], &m[0][0] + 104 * 104, 0); for(int i = 0; i < N; i++) for(int j = 0; j < M; j++) for(int k = 0; k < K; k++) if(get<0>(c[k]) <= i && i < get<2>(c[k]) && get<1>(c[k]) <= j && j < get<3>(c[k])) m[i][j] = 1; // for(int i = 0; i < N; i++) // { // for(int j = 0; j < M; j++) // cout << m[i][j]; // cout << '\n'; // } int component = 0; vector<int> area; for(int i = 0; i < N; i++) for(int j = 0; j < M; j++) if(!m[i][j] && !visited[i][j]) { component++; area.push_back(dfs({i, j})); } sort(area.begin(), area.end()); cout << component << '\n'; for (int i = 0; i < area.size(); i++) cout << area[i] << ' '; cout << '\n'; return 0; }저는 강사님과 약간 다르게 코드를 작성했는데 강사님의 이해를 돕기 위해 다른 점을 살짝 설명드리면해당 문제 예시 그림에서 시계 방향으로 90도 회전한 상태라고 가정하고 진행을 했습니다. 그래서 x, y 위치가 반대고 각 이중 for 문의 첫 for 문 내 조건문 표현식에서 N 을 사용합니다.미리 영역 좌표를 받고 int 형 데이터 4개를 가지고 있는 튜플을 사용했는데요. 제가 안되는 부분은 바로 해당 튜플을 가지고 영역을 표시할 때 입니다. for(int i = 0; i < N; i++) for(int j = 0; j < M; j++) for(int k = 0; k < K; k++) if(get<0>(c[k]) <= i && i < get<2>(c[k]) && get<1>(c[k]) <= j && j < get<3>(c[k])) m[i][j] = 1;중요한건 오른쪽 위 좌표에 대해서 검사를 할 때 등호를 포함시키지 않는게 답을 위한 중요한 부분이였는데요. 이 부분이 이해가 가질 않습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-C질문입니다
cnt[100]이 아닌 cnt[104]를 사용하는 이유가 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dev c++ 오류
https://www.inflearn.com/questions/773687/dev-c-%EC%9E%90%EC%B2%B4-%EC%98%A4%EB%A5%98 안녕하세요 선생님위 링크와 같은 문제를 겪고 있는데요.저도 마찬가지로 경로에 공백이 있는데요. 경로를 구체적으로 어떻게 설정하는지모르겠습니다. Chat GPT와 구글링도 해봤지만 도저히 방법을 모르겠어서 질문드립니다.단계별로 해결방법을 알려주시면 감사하겠습니다~
-
미해결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);까지 적었더니 프로그램이 동작이 안되던 경우도 있더군요 어떠한 이유인지 알고싶습니다또한 어떤것은 아규먼트값이 0일때도있고 NULL일때도있던데 이것의 차이도 알고싶습니다미리 감사합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백준 1152질문
선생님 눈뜨고쓸정도로 스플릿외워서 이때다싶어 사용했습니다만 바로 시간초과가 뜨네요 ㅜhttp://boj.kr/c6c01ff909ca445dbb0b4a283faf9b02이게 제가 한 링크고#include <bits/stdc++.h>using namespace std;int main() { string s; int a = 1; getline(cin, s); for (int i = 0; i < s.length(); i++) { if (isspace(s[i])) { if (s.length() == 1) { cout << 0; return 0;} else if (i > 0 && isspace(s[i - 1])) { cout << 0; return 0;} else if (i == 0 || i == s.length() - 1) continue; else a++; } } cout << a; return 0;}이건 통과되는 다른사람껀데 아무리봐도 이해가 잘 안되네요 ㅜㅜ 알려주십셔
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-g
http://boj.kr/29fb43fd10d44ca584e97162656381a0안녕하세요 선생님 제 코드 맨 밑에 반례가 안돌아가는 논리적 이유를 알 수 있을까요?? 그리고 저는 질문게시판으로 저 반례를 찾은것인데 이러한 애매한 반례는 어떻게 찾는것이 좋을까요? 예를들어 저 반례는 선생님이 설명해주신 최대 최소로 찾을 수 있는 반례가 아닌거 같습니다.제 코드의 33- 37번째줄은 벡터인경우에만 실행이되나요?선생님이 max값을 200000으로 설정하신 이유가 궁금합니다!