묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 질문합니다.
안녕하세요. 선생님강의 항상 잘 보고 있습니다.http://boj.kr/748c1be340784788af3183283cd97163배열로 prev 하신 부분을 강의 듣기전에 map으로 풀었는데 왜 틀렸는지 잘 모르겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 질문
안녕하세요 강사님 모범답안에서 몇가지 질문드립니다1. if(isVowel(idx)){ lcnt++, vcnt = 0, is_include_v = 1; }else{ vcnt++, lcnt = 0; }여기서 카운트하는 변수를 서로 바꿔도 상관 없는거죠? 밑의 코드처럼요!if(isVowel(idx)){ vcnt++, lcnt = 0, is_include_v = 1; }else{ lcnt++, vcnt = 0; }2. 위에서 int prev = -1; 선언했고 밑에 if문에서 if(i >= 1 && (prev == idx) && (idx != 'e' && idx != 'o'))이렇게 prev를 사용하셨는데요 두 코드 사이에 prev값이 증가하는 코드가 따로 없는거같은데 -1이었던 prev가 어떻게 idx값이랑 같을수가있나요? 이전값prev와 현재값idx가 같으면 동일한 문자 2개가 연속되는것이다 라는 의도는 알겠는데 어떻게 같을수가있는지 (prev == idx) 이 코드 이해가 안됩니다ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안을 어떻게 공부해야하는지 질문드립니다.
안녕하세요. 대학교 알고리즘 대회 준비중인 고3입니다.강의에 제공하는 교안을 다운받아서 5월 초부터 지금까지 64쪽까지 하기는 했습니다 그런데앞쪽에 나오는 개념들이 아직 배우지 않았는 뒤쪽에 그 개념 설명이 있는 경우에는 제가 어떻게 공부해야 해야하는지 모르겠습니다.예를 들어 64쪽에 이터레이터 예제코드에는 push_back()이 있고 이거는 88쪽에 개념이 설명되어있습니다.또 42쪽의 split에는 백터 개념이 사용되는데 이거는 그 앞에서 배우지 않았던 거라서 이게 뭐지? 하게 되구요..이런식으로 뒤쪽에 개념 설명이 있는 것들이 앞쪽에 코드예제에 사용될 때가 있는데 이럴때는 이떻게 공부해야할까요?? 혹시나 제가 잘못 공부하고 있는게 아닌지 걱정됩니다. ㅜㅜ8월달이 대회이고, 저는 php를 조금 했고 이 강의를 처음 시작할땐 c++은 거의 몰랐었습니다.아, 그리고 글을 읽어보니 부트캠프 코딩테스트는 5주차 정도면 쉽게 하실 수 있을거라는 댓글을 보았는데 혹사 대학교 알고리즘 대회도 동일할까요? 국민대 알고리즘 대회를 준비하고 있습니다.감사합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
좌표를 2차원 배열로 나타낼때
cin >> m >> n >> k;저는 이런식으로 큰돌님과 거꾸로 해서 풀었는데요. fill(&a[0][0], &a[100][101], 1); for (int i = 0; i < k; i++) { cin >> sx >> sy; cin >> ex >> ey; ey -= 1; ex -= 1; a[sy][sx] = 0; //2,0 a[ey][ex] = 0;// 3,3 for (int j = sy; j <= ey; j++) { for (int p = sx; p <= ex; p++) { a[j][p] = 0; } } 아래 큰돌님 소스가 더 간단한 것 같아서 이해를 하려고 하는데 머리에서 쥐가나네요.. for(int i = 0; i < k; i++){ cin >> x1 >> y1 >> x2 >> y2; for(int x = x1; x < x2; x++){ for(int y = y1; y < y2; y++){ a[y][x] = 1; } } 0대신 1로 표기하는 것은 이해햇으나, 이중포문의 순서나 a[][] 에서 x,y가 어느순서로 들어가는지 사고과정을 좀 알려주시면 감사하겠습니다. } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
atoi를 이용한 코드가 틀린 이유
http://boj.kr/216b077f0cbc47fabca1436ebcabad2b선생님 이 문제를 atoi를 이용해서 풀 면 틀렸다고 뜨는데 그 이유가 atoi함수 자체가 string을 int로 바꾸는거라 string의 길이 제한을 넘어가기 때문에 틀렸다고 뜨는 건가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-F 문제 이해가 되질 않습니다.
예제 입력 1에 왜 출력이 6이 나오는지 이해가 되질 않습니다.1 -> 3 -> 3 -> 5 순으로 사과를 받게 되면 최소 거리가 4라고 생각합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
교육과정설계 문제 관련 질문입니다.
import sys sys.stdin = open("input.txt", "rt") a = input() order = [] n = int(input()) course = '' for TC in range(1, n+1): course = input() for x in a: order.append(x) for x in course: if x in order and x == order[0]: order.pop(0) elif x in order and x != order[0]: print("#%d NO" % TC) order.clear() break else: if len(order) != 0: order.clear() print("#%d NO" % TC) else: print("#%d YES" % TC)문제를 풀이할 때 큐를 사용하지 않고 리스트만 사용해서 작성한 코드입니다.리스트에서도 pop(0)으로 큐에서의 popleft()기능 수행이 가능하고 append도 동일하게 사용 가능한데 큐를 사용하는 이유가 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-F 맞왜틀 질문
http://boj.kr/21f627bbbf1542a3b18476f88f391725안녕하세요 강사님 어디가 틀린건지 도저히 모르겠습니다간단한 코드라서 틀릴만한 건덕지가 아마..바구니 위치 초기값을 강사님과 다르게 왼 오 각각 지정해줬고, 바구니가 이동될때마다 이동하는 칸만큼 왼 오 각각에다가 더하거나 빼준 부분밖에 없어보이는데, 이거 이렇게 해도 논리 맞는거 아닌가요..?ㅜㅜ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 그대로 배열 가져올 경우 질문입니다.
안녕하세요 선생님, 강의 재밌게 듣고 있습니다.질문입니다.문제에서 [5,28](학생수,예산) 배열도 그대로 가져오면 코드가 어떻게 수정될까요? (처음 let arr에 추가 할 경우 말씀드립니다)i 와 j for문 돌때 1부터 시작하면 된다고 생각했는데, 답이 안나와서 질문드립니다!! function sol(m,arr){ let ans = 0; let n = arr.length; arr.sort((a,b)=>((a[0]+a[1])-(b[0]+b[1]))); for(let i = 1; i < n; i++){ let money = m - (arr[i][0]/2 + arr[i][1]); let cnt = 1; for(let j = 1; j < n; j++){ if(j !== i && arr[j][0]+arr[j][1] > money) break; if(j !== i && arr[j][0]+arr[j][1] <= money){ money -= (arr[j][0]+arr[j][1]); cnt++; } } ans = Math.max(ans, cnt) } return ans;}let arr= [[5,28],[6,6],[2,2],[4,3],[4,5],[10,3]];console.log(sol(28,arr));
-
미해결파이널 코딩테스트 : 프론트엔드
섹션 3. 파코테 2 - 이미지 캐러셀 Page(★★★☆☆)라는 강의의 동영상 13:11에서 Next를 누르면 왼쪽 이미지가 멈춰있는게 맞나요??
예를들면 영상에서 화면에 ⓐⓑⓒ 이렇게 있을 때 Next>를 누르면ⓐ는 멈추고 나머지ⓑⓒ만 움직이는데요,본래 캐러셀이 이런식으로 동작하는 것일까요??제가 캐러셀에 대해 잘 몰라서..;;(제가 볼 때는 ⓐ와 ⓒ가 움직이고 ⓑ는 고정되어 있는게 자연스러울듯 한데, 영상처럼 왼쪽 카드 ⓐ가 완전히 멈춰있는게 더 자연스러운건지 헤깔리네요 ㅠㅠ) [스크립트 - 마무리] 강의의 13:11초https://github.com/paullabkorea/theJungleFinalCodingTestFrontEnd/tree/main/2.ImageCarousel
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
m1 설치 과정중 오류 mkdir: bits Permission denied
안녕하세요 강의 교안에서 맥북 c++ 설치를 따라하는 중에includ 경로로 들어오는 것 까지는 되었는데mkdir bits 에서 권한이 없다고 뜨는데 어떻게 해결하면 좋을까요?
-
미해결코딩테스트 [ ALL IN ONE ]
남아 있는 강의들은 언제쯤 업데이트가 되는지 궁금합니다!
안녕하세요! 혹시 남아 있는 강의들은 언제쯤 업데이트가 되는지 알 수 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
g++ -std=c++14 -Wall a.cpp -o test.out 입력 중 오류
안녕하세요 강사님 맥m1에 c++ 설치 중에 궁금한 점이 있어서 질문 남깁니다.g++ -std=c++14 -Wall a.cpp -o test.out코드를 터미널에 입력하는 과정에서이렇게 오류가 뜨는데 어떻게 해결하면 될까요? 이전에 터미널에서 설치하는 과정에서는 이렇게 되어있었던 상황입니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[2-C] fill 함수의 범위 질문
안녕하세요 강사님.강사님 1주차는 잠시 건너뛰고2주차 시작하고 있는데2주차 개념강의를 듣고 문제를 풀고 있습니다.이미 제가 학교에서 배웠던 개념을 의사 코드로 잘 표현하신 개념강의가 확실히 이해가 잘 되고 응용도 잘 되는 것 같습니다.잡소리가 길었고 질문 드립니다./* 답 : http://boj.kr/c6ad22b6eb274064b90a2fb2c3509961 */ #include <bits/stdc++.h> using namespace std; int N; int m[104][104]; bool visited[104][104]; int dx[4] = {0, 1, 0, -1}; int dy[4] = {1, 0, -1, 0}; void dfs(pair<int, int> node, int height) { 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 >= N) continue; if(m[nx][ny] > height && !visited[nx][ny]) dfs({nx, ny}, height); } } int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int max_height = 0; cin >> N; for(int i = 0; i < N; i++) for(int j = 0; j < N; j++) { cin >> m[i][j]; max_height = (max_height < m[i][j]) ? m[i][j] : max_height; } // 모든 영역의 값이 1일 경우 반복문이 돌지 않는다. // 또한, 아무 지역도 물이 잠기지 않을 수 있으므로 // 최솟값은 1로 지정해야한다. int answer = 1; for(int tc = 1; tc < max_height; tc++) { // N * N 이 아닌 // 104 * 104 으로 해야 정상적으로 된다. // 이유는 모르겠다. fill(&visited[0][0], &visited[0][0] + 104 * 104, 0); int count = 0; for(int i = 0; i < N; i++) for(int j = 0; j < N; j++) if(m[i][j] > tc && !visited[i][j]) { dfs({i, j}, tc); count++; } answer = (answer < count) ? count : answer; } cout << answer << '\n'; return 0; }핵심 로직은 다 짜고 이해도 됐는데 저fill(&visited[0][0], &visited[0][0] + 104 * 104, 0);이 부분에서 fill 함수의 두 번째 인자가&visited[0][0] + N * N 을 하면 안되고&visited[0][0] + 104 * 104 이여야 정상 작동하는 것인가요?예제 1을 기준으로visited 2차원 배열을 N * N 만큼 출력 해봤는데N * N 의 경우 해당 범위만큼0 으로 채워지지 않았습니다.이유가 궁금합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
침몰하는 타이타닉 시간 복잡도/반례
import sys sys.stdin = open("input.txt", "rt") n, m = map(int, input().split()) # n = 승객 수, m = 무게 제한 weight = list(map(int, input().split())) weight.sort() ans = 0 lt, rt = 0, n-1 while lt <= rt: if weight[lt] + weight[rt] <= m: ans += 1 lt += 1 rt -= 1 else: ans += 1 rt -= 1 print(ans)문제의 답안으로 작성한 코드인데 해당 코드의 반례가 있는지 궁금하고, 강의에 나온 정답 코드와 비교했을 때 시간복잡도면에서 불리한지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백준 24480 질문입니다.
안녕하세요 큰돌님강의를 수강하고 있는 수강생입니다.2주차 강의와, 블로그 글 중 dfs 수도코드를 보며 따라해보았는데 어느 부분이 틀렸는 지 모르겠어서 질문드립니다.코딩 초보라 부끄럽지만 올려봅니다.감사합니다.수강생 올림.#include <bits/stdc++.h> using namespace std; int V[100001]; vector <int> adj[100001]; int x,n,m,r; int ret = 0; void dfs(int r){ V[r] = 1; for(int x : adj[r]){ if(V[x] == 0){ dfs[x]; } } ret++; return; } int main(){ cin >> n >> m >> r; for(int i = 0 ; i < m ; i++){ int a,b; scanf("%d %d", &a, &b); adj[a].push_back[b]; adj[b].push_back[a]; } for(int i = 1; i < n; i++){ sort(adj[i].begin(), adj[i].end(), greater<int>()); } dfs(x); for(int i = 1; i < n; i++){ printf("%d\n", ret[i]); } }
-
해결됨코딩테스트 [ ALL IN ONE ]
강의에 바라는 점입니다!
안녕하세요, 좋은 강의 제공해주셔서 덕분에 잘 듣고있습니다.강의를 들으면서 몇가지 개선되었으면 하는 점이 있어서 글을 남겨봅니다.참고로, 저는 다른 코딩테스트 강의는 들어보지 않았고 지극히 주관적인 견해입니다! 집어주신 코드는 아예 템플릿처럼 암기하라고 하셨는데, 암기할 수 있도록 예제를 Notion에 정리해서 공유해주셨으면 이해하기가 더 쉬웠을 것 같습니다.(저는 별도로 정리를 하고 있습니다.)코드가 수업중간에 수정되는 경우도 있고 코드가 풀로 적혀있지 않은 경우도 있어서, 템플릿처럼 암기를 하기 위해서는 정리되어있는 자료(예시 input값을 포함한 전체 코드)가 있었으면 좋겠다고 생각했습니다. 예를 들어 Tree 자료구조를 설명하실 때는 return의 속성과 같은 부분에 대해 연결지어서 설명해주셨으면 더 좋았을 것 같습니다.class가 나오는 경우에는 왜 여기에는 값을 미리 부여했고 이 케이스에는 미리 값을 주지 않았는지 등등 부연설명을 더 해주시면 좋을 것 같습니다. 인터넷 강의 특성 상 커뮤니티 게시판에 feedback을 신경 써주시면 좋을 것 같습니다. 좋은 강의 저렴하게 제공해주셔서 감사합니다! 부족하지만 열심히 따라가고 있습니다.강의를 듣는동안에는 따로 문제를 풀지 않고 쭉 들어보고 있습니다. 강의에 나온 코드를 완벽히 외우고 백준 문제들을 자료구조나 알고리즘당 5~10문제를 풀어보려고 하는데 괜찮은 공부방법인지 문의드립니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A 맞왜틀
안녕하세요 강사님 2-A 맞왜틀 원인을 알고싶습니다!http://boj.kr/7829432fbf3947d7a15bad0490d056d6
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[6주차 개념 예제] LIS에서 ret 초기값 설정 근거 질문
안녕하세요 선생님! LIS 강의 잘 들었습니다. 좋은 지식 전달해주셔서 감사합니다. 강의를 듣다가 궁금한 점이 있어서 여쭤보려 합니다. 14002번 같은 경우에서 LIS의 길이를 반환하는 ret을 초기화 할 때, ret = 1로 하셨던데 이유가 따로 있을까요? 최대 cnt[i]가 LIS의 길이라고 생각해서 ret에 담아내고, ret을 출력하면 LIS의 길이를 출력하는 거라고이해한 상태입니다.당연히 최대값을 걸러내야 하는 ret의 역할이 있으니, 그 초기값은 '최소' 부터 ~ ! 시작해서 최대값을 담아내는 걸로 생각하고 ret = -1e9로 바꿔서 돌려봤습니다. 그랬더니 70% 쯤에서 14002번이 틀렸다고 나오더라구요?? 이 부분을 혼자 분석해보려다가 너무 오래 걸리는 것 같아서 여쭤봅니다.. 다른 문제와 비교해 보았을 땐, 11053번에서는 ret = -1e9로 초기화 시키고 max(ret, cnt[i]) 해서 cout << ret << "\n" 해도 답이 잘 맞더라구요..14002번은 왜 안되는건지 궁금합니다~~~!(그.. idx = i 작업에도 영향이 있어서인지.. 가설은 세워봤는데.. 논거를 대지 못하겟네요 하하..)
-
미해결자바 코딩테스트 - it 대기업 유제
문제 2번째 test case 질문
안녕하세요 선생님. 문제 조건상 "서로가 이득이 생기지 않으면 교환하지 않는 학생도 있습니다" 이 문장을 "서로가 이득이 생기지 않으면 두 학생 은 교환하지 않는다" 로 해석하는게 맞을까요?왜냐하면 교환이라는건 양쪽다 주고 받는게 있어야 하니깐 , 둘다 주고 받거나 / 둘다 주고받지 않거나 로 이해해서 위와 같이 생각하였습니다.