묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - S 질문 있습니다.
안녕하세요. 강의를 듣고 힌트를 얻어서 어찌저찌 백준에서역시 통과를 하게 되었습니다. 그런데, 이해가 안되는 부분이 하나 있어서 질문을 하고싶습니다. 제가 다이나믹 테이블의 선언을 처음에는 코드의 38번째 줄에서 하였습니다.그 이유는 결국 시작을 어디에서 하던지 간에 다이나믹 테이블의 값은 똑같다고 생각해서이기 때문입니다.하지만 다이나믹 테이블의 선언을 루프 외부, 38번째 줄을 하니 문제가 틀리고, 내부, 40번째 줄을 하니 테스트를 통과 했습니다. 그렇다는 말은 DFS 진입지점에 따라 다이나믹 테이블의 값이 변한다는 말인데, 하나밖에 없는 테스트 케이스로는 왜 변하는지 원인을 찾을 수 가 없습니다. 어떤 케이스, 어떤 반례에서 다이나믹 테이블을 루프 밖으로 꺼냈을때 DFS의 진입지점마다 다이나믹 테이블의 값이 변하게 되나요? https://www.acmicpc.net/source/share/aa38ef94ed944749bfc167ca340deca4 1줄 요약: 다이나믹 테이블의 선언을 38번째 줄에 해도 돌아갈것 같은데 안돌아가고 40번째 줄에 하면 돌아가는데 이유를 모르겠음.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-B Check함수 질문있습니다 :)
안녕하세요 선생님 🙂 저는 자주 반대로 생각하는 것 같습니다.문제를 다시 풀어봤는데요, Check함수의 조건을 선생님과는 다르게 벽이 있을 경우에 return false로 두었습니다. 아무리 봐도 벽이 없을 경우에 return true로 두는거랑 차이가 없는 코드라고 생각하는데요, 무엇이 잘못된건지 알려주시면 감사하겠습니다..!! http://boj.kr/472edaa9bfdf43be89ea926f3acf6a4e
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-I 문제 37%에서 틀리는데 실수<--> 정수 문제일까요?
큰돌님 안녕하세요?제가 해당 문제 풀면서 아이디어는 맞다고 생각이 되는데실수로 받는걸 (int)(실수*100) 해서 정수형으로 넣어서 풀려니까 했는데 37%에서 틀려서 질문 들립니다. 큰돌님하고 코드 차이가 있다면 scanf왜 cin정도밖에 모르겠습니다. 제 코드 어디가 잘못되었는지 조언 주실 수 있을까요?http://boj.kr/ca02767551c24c84bb23432a91b19f23
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-C 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 선생님. 수업 잘 듣고 있습니다.이 부분을 왜 6-B 문제처럼 안 하셨는지 궁금합니다.빨간 부분을 안 하면 mid 값이 check(mid)에서 넣은 mid 값이랑 다르지 않나요?
-
해결됨시니어 면접관이 알려주는 개발자 취업과 이직 한방에 해결하기 [이론편]
강의 / 책 내용 문의
안녕하세요, 이론편 / 실전편 함께 구매하였습니다.수강하는데 있어서 책도 별도로 구매해야 할지 궁금합니다.책과 강의 내용의 연관성이나 차이에 대해 알려주실 수 있으실까요?
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
2018 연속된 자연수의 합 구하기 백준 사이트에서 메모리 초과 오류가 발생합니다.
이유가 뭘까요 ....?import java.util.Scanner;class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = 1; int startIndex = 1; int endIndex = 1; int sum = 1; int n = sc.nextInt(); while(endIndex != n) { if(sum == n){ count++ ; endIndex++ ; sum = sum + endIndex; } else if(sum > n) { sum = sum - startIndex; startIndex++ ; } else { endIndex++ ; sum = sum + endIndex; } System.out.print(count); } }}
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 맞왜틀 질문있습니다.
안녕하세요.처음에 재귀가 떠오르지 않아 반복문으로 구현을 했는데, 테스트 케이스는 전부 맞는데, 내부에서 틀린듯 합니다.아쉽게도 다른 사람들은 77%에서 터지는데, 저는 1%에서 터지는군요...나름 로직은 맞다고 생각하는데 백준에서 어떤 테스트가 왜 틀렸는지 알려주지 않아 답답해 여기에 질문을 올려봅니다.제가 어떤 부분을 놓쳤나요?http://boj.kr/55f3b362377b463397c0298ec922cdf0
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
너무 기본적인 개념 질문드려서 죄송합니다.. ㅠㅠ
안녕하세요 선생님 🙂 플로이드 와샬 개념문제로 11404번 문제를 풀다가 갑자기 삼항연산자의 개념이 헷갈려졌습니다 ㅠㅠ 구글링해도 기본적인 설명만 있고, 교안도 삼항 연산자 관련 내용이 없어서 질문 드립니다.. http://boj.kr/eefe3db0d7aa4338bfffb83a6233db67 // 입력 부분 dist[a][b] = INF ? min(dist[a][b], c) : c; // 출력 부분 else cout << (dist[i][j] == INF ? 0 : dist[i][j]) << " "; 입력 부분에 ==가 아닌 =가 들어가는 이유를 모르겠습니다. 또, = 대신 ==를 넣으면 안되는 이유를 모르겠습니다. 제가 아는 삼항 연산자는if (dist[i][j] == INF) 라는 조건을 만족하면 dist[i][j]가 왼쪽이 되고, 만족하지 않으면 dist[i][j]가 오른쪽이 되는 것을 한 줄로 요약한 코드라고 알고 있습니다.개념이 심하게 헷갈리네요 ㅠㅠ 알려주시면 감사하겠습니다..!!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
어느 부분에서 안되는 건지 모르겠습니다.(먼지 제거할때)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.해당 코드로 하니까 실패했고http://boj.kr/b594a33a5cd74e75aef53810caed4d31해당 코드로 cleanDust부분을 변경하니까 맞았습니다. 왜 1번 처럼 cleanDust를 해주는 거는 틀린 걸까요?http://boj.kr/da76558b5fd7483caa9fe86f42569358
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
개념 강의 중 다익스트라 1753번 질문있습니다 :)
안녕하세요 선생님 🙂 벌써 마지막 강의네요 ^^ 감회가 새롭습니다. 선생님께서 작성하신 코드를 제가 알아보기 편하게 변경하고 있습니다.입력 값을 u, v, w 순서대로 입력을 하였는데 adj배열과 우선순위 큐의 입력을 w, v 순서대로 하셨더라구요. 이걸 v, w 순서대로 입력을 바꾸면 시간초과가 납니다.30분넘게 검증을 거쳤으나, 변수 이름 변경 과정에서 실수가 있는 것 같지는 않았습니다. 혹시나 제가 실수한 것인지, 실수가 없다면 시간초과가 나오는 이유가 무엇인지 알려주시면 감사하겠습니다 🙂 http://boj.kr/38a80ad865d4417ab06bc379f7111a5e
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간초과 원인을 잘 모르겠습니다.
http://boj.kr/9f72a1bbc1464292ac2339624d68b9d6 도움 요청드립니다...ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
컴파일 에러가 나는데 원인을 모르겠어요 ㅜㅜ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/b607e5846a7142e7b6c87f146bc1a3c9
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-P
연속된 동일한 키의 횟수를 스택에 저장하지 않고서 문제를 풀어보려고 했는데요 계속해서 testcase는 맞는데 문제에서는 통과가 안되네요ㅠㅠ 어디가 문제일까요?? http://boj.kr/843b5e4935f448479d1701b0ed2e3df7
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문있습니다!
어떤점이 틀렸는지 혹시 반례를 알 수 있을까요??http://boj.kr/9bf6f69f0bb2401bbac93c7b4b735817
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-D 런타임에러가 나욥
vscode에선 잘 실행되는데 제출시 런타임에러가 납니다 ㅠ http://boj.kr/bb0b0ec8f10a45f58f9e578ffd3694eb#include <bits/stdc++.h> using namespace std; // 입력값을 받는다 만약 s사이즈가 1이면 곧바로 0를 리턴한다. // 2. 절반으로 나눈 값을 저장한다. // 3. string a,b를 선언하고 function(string s, int start를 받는다.) // 4. a와 b를 function을 통해 받고 비교한 후 같다면 1 , 아니라면 0을 반환한다. string input; string f(int start, int size){ string r; for(int i = start; i < start+size; i++){ r += input[i]; } return r; } int main() { cin >> input; if(input.size() == 1) { return 1; } int size = input.size() / 2; int sniff = input.size() % 2 != 0; string a = f(0,size); string b = f(size + sniff,size); reverse(b.begin(),b.end()); int result = 0; if(a == b){ result = 1; } cout << result; return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DP 개념강의 자두나무 질문
안녕하세요 강사님, DP개념강의 설명하실 때 자두나무 코드를 예시로 설명해주셨는데요. 강사님 코드대로 실행해보니 제가 생각한 테스트케이스랑 다르게 나와서 질문드립니다. 입력 3 4111 제 예상: 3강사님 코드 출력: 1 입력3 12111 제 예상: 3강사님 코드 출력: -999999997
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - V make 함수 범위
void make(int n, int psum[], map<int, int>& mp) { for (int i = 1; i <= n; i++) { for (int j = i; j <= n + i - 1; j++) { int value = psum[j] - psum[j - i]; mp[value]++; if (i == n)break; } } } 위 코드에서 j의 범위가 j <= n이 아닌j <= n + i - 1인 것인 이유는 원형구조를 선형으로 대체하기 위해 늘려준 범위인 것일까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님 이문제를 풀면서 이해가 안되는 부분이 있습니다.bool check 부분에서 bool flag = 0;으로 둘 때랑 0으로 초기화 하지 않고 bool flag; 로 둘때 초기화를 화면 백준에서 결과 값이 다르게 나옵니다. bool flag;로 두면 시간 초과bool flag = 0으로 하면 맞았습니다. 이렇게 뜨는 데 왜그런걸까요? #include <bits/stdc++.h> using namespace std; int n, m, a[104][104],cnt=1,ret,visited[104][104]; vector<pair<int,int>>v; const int dy[] ={-1,0,1,0}; const int dx[] = {0,1,0,-1}; bool check(){ bool flag = 0; for(int i =0; i < n; i++){ for(int j =0; j < m;j++){ if(a[i][j] == 1) flag = true; } } if(flag) return 0; else return 1; } void dfs(int y, int x){ visited[y][x] = 1; if(a[y][x] == 1){ v.push_back({y,x}); return; } for(int i = 0; i<4;i++){ int ny = y + dy[i]; int nx = x + dx[i]; if(ny < 0 || nx < 0 || ny >= n || nx >= m) continue; if(visited[ny][nx]) continue; dfs(ny,nx); } return; } int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin >> n >> m; for(int i = 0; i < n; i++){ for(int j =0; j < m;j++){ cin >> a[i][j]; } } while(true){ memset(visited,0, sizeof(visited)); v.clear(); dfs(0,0); ret = v.size(); for(pair<int, int> c : v){ a[c.first][c.second] = 0; } cnt++; if(check()) break; } cout << cnt - 1 << "\n" << ret << "\n"; return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문
http://boj.kr/3c317ac3fc7940aaa96c9d416b207932안녕하세요 선생님.2-S 효율적인 해킹 문제를 위와같이 풀어보려 했는데 실패했습니다. 매 정점마다 각 정점을 start로 삼아 dfs로 탐색 후, 탐색을 마쳤을 때의 visited개수의 총합을 sum_hacked() 함수로 구해 가장 효율적인 해킹이 가능한 경우를 구하려 했는데요. 예제는 Pass되었으나 채점에서 바로 오답처리가 됩니다.잘못 생각한 부분 힌트 주시면 감사드리겠습니다. 감사합니다.
-
해결됨코딩테스트 [문제 해결 기법]
섹션1-예제1 질문
안녕하세요, 우선 좋은 강의 감사합니다.제가 보기엔 섹션1의 예제1에서 가장 중요한 아이디어는 아래 3가지인 것 같습니다.조작2와 조작3은 해당 칸의 색을 반전 시키는 것 외엔 같다.모든 칸에 우선 조작2를 시행한다.모든 칸에 조작2를 시행하면, 1번 아이디어에 의해 모든 검정타일을 반전 시킬 수 있다.또한, 해설에서 생각의 흐름 또한 1 → 2 → 3 인 것 같습니다.1번은 쉽게 관찰할 수 있는데, 2번 아이디어는 어떻게 생각하는 건가요?제가 혼자 문제에 대해 고민하며 1번 아이디어를 관찰했을 땐, 1번 아이디어를 어떻게 사용해야 할지 감이 잘 안 왔습니다. '조작2를 시행한 칸에 대해 조작3으로 번복하면 해당 칸 외엔 변화가 없고 해당 칸의 색만 바뀐다' 라는 사실까진 도달했지만, 모든 칸에 조작2를 우선적으로 시행해두고 아이디어1을 이용할 생각까진 도달하지 못했습니다. 이런 생각을 하지 못한 사람 입장에선, 모든 칸에 조작2를 먼저 해본다는 게 다소 막연하고 배경의 motivation이 없이 갑자기 툭 나온 생각 같다는 느낌이 들어서 질문 드립니다.더 나아가, 어떻게 이런 생각들을 운에 맡기지 않고 논리적으로 접근할 수 있을까요?