묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 질문있습니다
http://boj.kr/0cfb08048b9141b798f199cfd9993367굉장히 직관적으로 풀었는데,치즈가 남아있는지 체크남아있다면, 치즈의 가장자리 녹이기 (반시계방향으로)남아있는 치즈의 덩이 (연결요소 개수) 개수 구하고 또 녹이기. 형식으로 구현했습니다..테스트 케이스는 어찌저찌 맞은듯 한데 어디에 문제가 있는 코드일까요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J [14497:주난의 난] 질문 있습니다.
큰돌님 안녕하세요? 항상 강의 잘 보고 있습니다. http://boj.kr/b8636c720918477b86a00858b5a8929a위의 제 코드를 채점했을 때 96%에서 "틀렸습니다"로 채점됩니다.반례가 도저히 생각나지 않아 큰돌님께 여쭤보고 싶어서 질문글을 작성하게 되었습니다. 항상 감사드립니다 !
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
구간합구하기1 (백준11659)
선생님이 강의하시는데로 코드쳤는데 마지막 샘플예시처럼5 5 입력하면 => 1 이 나와야하는데 -14 가 나와버리네요코드가 동일한데 왜 결과가 다를까요 ㅠ이래는 작성한 코드입니다 public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine()); int suNo = Integer.parseInt(stringTokenizer.nextToken());// 숫자의 개수 int quizNo = Integer.parseInt(stringTokenizer.nextToken());//질의개수 long [] s = new long[suNo+1]; //합배열 선언 stringTokenizer = new StringTokenizer(bufferedReader.readLine()); //한줄로 쭉 받아올때 stringTokenizer 사용 for(int i=1; i<=suNo; i++){ s[i] = s[i-1]+Integer.parseInt(stringTokenizer.nextToken()); } for(int i=0 ; i<s.length;i++) { System.out.print("s:"+s[i]+" "); } for(int q=0; q<quizNo; q++){ stringTokenizer = new StringTokenizer(bufferedReader.readLine()); int i = Integer.parseInt(stringTokenizer.nextToken()); int j = Integer.parseInt(stringTokenizer.nextToken()); System.out.println(s[j] - s[i-1]); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-L 질문있습니다.
http://boj.kr/a0d2f4d95b384de39d9b01503b89f68c 강의 풀이같은 경우엔, 골이 들어간 시점마다 승부를 비교해 누적해주는 식으로 구현하셨는데,저는 무승부가 된 시점에, 그 시점에서 이전 골 기록을 빼고 누적해주는 식으로 구현했습니다.. 테스트는 통과하는데 제출시 오답입니다.어떤 반례가 있는지 못 찾겠습니다 ㅠ 제 코드는 왜 틀린걸까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이런식으로 풀어도 괜찮을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.function solution(n, arr) { let answer = 'NO'; let ch = Array.from({ length: n }, () => 0); function DFS(v) { if (v === n - 1) { let aSum = 0; let bSum = 0; for (let j = 0; j < n; j++) { if (ch[j]) aSum += arr[j] //0이면 else bSum += arr[j] //1이면 } if (aSum === bSum) return answer = 'YES' } else { ch[v] = 1; DFS(v + 1) ch[v] = 0 DFS(v + 1) } } DFS(0); return answer } console.log('answer', solution(6, [1, 3, 5, 6, 7, 10]))
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 정말 모르겠습니다 ㅠㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/ea14b76bba984f7d95c8c9a8ba109d94선생님 ㅠㅠㅠ 이게 도대체 왜 안되는건지 잘 모르겠습니다...
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
삽입정렬로 생각이 안나서 다르게 풀어봤습니다.
삽입 정렬로 혼자 풀어보려고 했는데 도무지 생각이 안나서 버블정렬? 로 푼것 같습니다사실 버블정렬도 아닌것 같긴한데혹시 이렇게 풀면 너무 비효율적이거나 반례가 있을까요?function solution(s, arr) { let answer = new Array(s).fill(0); answer[0] = arr[0]; for (let i = 1; i < arr.length; i++) { if (answer.includes(arr[i])) { for (let j = s - 1; j > 0; j--) { if (answer[j] === arr[i]) { [answer[j], answer[j - 1]] = [answer[j - 1], answer[j]]; } } } else { answer.pop(); answer.unshift(arr[i]); } } return answer; }
-
해결됨글로벌 개발자로 성장하는 < 코딩 실무 영어 /> 마스터 클래스
8:10 compile 질문입니다.
that be compiled 가 맞는거 아닌가요? 타입스크립트가 컴파일되면(수동태) plain Javascript로 결과물이 나오는...?
-
미해결알고리즘 코딩테스트 문제풀이 with JAVA & 파이썬 (난이도 - 브론즈 3)
DAY11 영상에 오타있네요
최댓값 문제 2566번인데 2556번(별 찍기 - 14)로 숫자가 잘못되어있습니다.수정 부탁드립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
미로탐색 코드 질문있습니다.
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; class Main { static int n = 7; static int[][] map; static int count = 0; static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, -1, 0, 1}; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); map = new int[n][n]; for (int x = 0; x < n; x++) { StringTokenizer st = new StringTokenizer(br.readLine()); for (int y = 0; y < n; y++) { map[x][y] = Integer.parseInt(st.nextToken()); } } dfs(0, 0); System.out.println(count); } public static void dfs(int x, int y) { if (x == n - 1 && y == n - 1) { count++; } else { for (int i = 0; i < 4; i++) { int d_x = dx[i] + x; int d_y = dy[i] + y; if (d_x >= 0 && d_x <= n - 1 && d_y >= 0 && d_y <= n - 1 && map[d_x][d_y] == 0) { map[d_x][d_y] = 1; dfs(d_x, d_y); map[d_x][d_y] = 0; } } } } }저와 같은 경우는 1부터 시작하지 않고 0부터 시작해서 n전까지를 구해서 진행했는데 인덱스 차이만 있는데 답은 두배씩 나오는지 모르겠습니다.정답이 8이라고 하면 16으로 나오더라구요. 인덱스를 하나씩 빼줘서 했을 뿐인데 어디가 문제인지 못찾겠네요ㅠ 아니면 놓친부분이 어디에 있는지 모르겠습니다ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 p136 질문있습니다
안녕하세요. 교안 p136 예제 코드에서#include <bits/stdc++.h> using namespace std; struct Point { int y, x; }; struct cmp { bool operator()(Point a, Point b) { return a.x < b.x; } }; priority_queue<Point, vector<Point>, cmp> pq; int main() { pq.push({1, 1}); pq.push({2, 2}); pq.push({3, 3}); pq.push({4, 4}); pq.push({5, 5}); pq.push({6, 6}); cout << pq.top().x << "\n"; return 0; }operator가 오버로딩 된 것까진 알았는데 그럼 operator()는 ()라는 연산자를 오버로딩 한 것인가요..??()라는 연산자는 무슨 의미를 가진 건가요..? ㅜㅜ 설명해주시면 감사하겠습니다.priority_queue<Point, vector<Point>, cmp> pq;그리고 이렇게 priority_queue를 선언할 때 인자가 세개 들어가는 게 각각 무슨 의미인지 설명해주실 수 있나요..? 검색을 해도 언급되는 부분을 못 찾겠어서요ㅜㅜ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문있습니다..
http://boj.kr/e351fd164d5943d29c80fef4e6fb27d6자식노드를 담아주는 인접 리스트를 만들고,cut함수로 잘라낸 노드와 그 자식들을 dead체크를 해주었습니다. 그리고 남은 트리에 관하여, dead 체크와 자식 체크를 해주어 리프 노드를 구해봤는데 무엇이 잘못된 것일까요 ...
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 질문
http://boj.kr/a4d6ba76bf2f4964a2ffaccf343ffaa9주난이를 기준으로 퍼져나가면서 0이면 queue에 넣고 1이면 배열에 넣어두었다가 0으로 바꿔주는 방법을 사용했는데 어디서 틀린건지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 p131 질문 있습니다
안녕하세요 큰돌님 😀교안 p131의 'x를 1순위로 오름차순으로 정렬하고 y가 2순위로 내림차순 z가 3순위로 오름차순 정렬이라는 문제'의 예제 코드에서struct Point { int x, y, z; Point(int y, int x, int z) : y(y), x(x), z(z) {} Point() { y = -1; x = -1; z = -1; } bool operator<(const Point &a) const { if (x == a.x) { if (y == a.y) return z < a.z; // 3순위 : z가 오름차순 return y > a.y; // 2순위 : y가 내림차순 } return x < a.x; // 1순위 : x가 오름차순 } };operator< 오버로딩 부분에서 오름차순, 내림차순이 어떻게 정해지는 것인지 정렬 로직이 궁금합니다.검색해보았더니 operator< 가 Point 내부에서 자체적으로 정렬을 시킨다고 했는데,그럼 operator< 매개변수로 들어오는 a가 어떻게 들어오게 되고 정렬을 어떻게 시키는 건지 이해가 안갑니다..ㅜㅜ예를 들어서 Point의 지역변수 x, y, z와 a의 x, y, z를 비교했을 때, x < a.x가 false이면 자리를 바꾸는 것인가요..?ㅠㅠ 로직 자체가 이해가 안 갑니다. 그리고 Point 구조체를 만드실 때 변수를 y, x 순으로 받으시는 것도, 이렇게 하면 더 편리한 이유가 있는건지 질문드리고 싶습니다!감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문 있습니다.
http://boj.kr/4ff659025d334003940b3c0246e40c58카운트를 할 때 인덱스 0에 A카운트, 1에 B카운트 .. 진행을 해서 구현했습니다.if(mid) { answer.insert(answer.begin() + answer.size() / 2, mid + 'A'); } 하지만 mid값을 중앙에 넣을 때 조건문에서 문제가 있는데 예를 들어 AAAAA를 넣으면 결과값으로 AAAA가 나옵니다.홀수 알파벳이 A일 때 조건문에 들어가지를 못해서 하나가 빠지는 것 같은데.. 인덱스 1일 때 A 카운트, 2일 때 B 카운트 하는 방식으로 해결할 수는 있지만 다른 방법은 없을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2240번 자두나무 질문있씁니다!
안녕하세요 선생님! 제가 이해하는 것이 맞나 싶어서 여쭤보고자 질문올립니다!Q1.밑에 이부분에서는 go(0,1,m-1)같은 경우와 go(0,0,m)는 완탐 시 처음 시작하자마자 움직이는 경우에 수를 나누어서 쭉쭊죾 한다음에 max값을 찾기 위해 구현한 것이 맞을까요?cout << max(go(0, 1, m - 1), go(0, 0, m)) << '\n'; Q2.밑에 이 부분에서 ret을 참조자로 받아서 반환하는 이유가 혹시 있을까요? 참조자를 사용하지 않으면 시간초과가 나더라구요.. 참조자를 통해서 직접 적으로 dp배열의 값을 참조하면 메모리를 효율적으로 쓸수 있어서 그런건가여? 근데 또 궁금하게 int &ret을 계속 생성하는건데.. 조금 햇갈립니다..ㅠint &ret = dp[idx][tree][cnt]; if(~ret) return ret; Q3.이 부분은 현재의 index에서 다음 인덱스로 갈떄 옆에 트리로 가는경우 안가는경우나눠지는 것으로 해석하였습니다. 그런데 뒤에 go함수 같은경우는 나무이동을 안할떄로 알고 있씁니다. 뒤에 (tree ==b[idx]+1) 같은 경우는 다음 go로 넘어가기 전 현재의 위치에 tree와 그 시간대 tree에 위치가 같으면 +1 (idx시간 떄 자두를 받았기 떄문) 아니면 0을 더하는 것 이 맞나요?!?return ret = max(go(idx + 1, tree^1, cnt - 1), go(idx + 1, tree, cnt)) + (tree == b[idx] - 1);Q4. 이건 문제와 외람된 말이긴 합니다. 지금 매 주차 개념설명 들으며 2~3문제 씩 주차 문제 풀면서 다음 주차 개념을 빠르게 듣고 있습니다. 과정이 너무 어려운데 이해가 안되면 문제를 외우기보다는 그 과정이 어떤식으로 대처해야하는지 위주로 공부하고 있습니다. 잘하고있는걸까여ㅠ,,
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7_A 2분 쯤 설명이 이해가 안됩니다.
코드를 아무리 봐도 DP에 넣은 값들이 여태까지 지나온 경로들의 최적해가 아니라 visited에 포함되지않은 남은 경로들의 최적해 인거같아요.... 설명에서는 앞에서부터 쌓아가는거 처럼 설명하시는데( (a b c)든 (a c b)든 최적의 값을 구해서 d로 가면 되는거아니냐는 부분) 제가 이해를 잘못 한건가요???
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4분 54초에 combi 외우라고 어디에서 말씀 하셨나요?
블로그 완탐 글 읽는데 이문제에서는 왜 visited 처리 안하셨는지 궁금합니다! 아 그리고 combi(-1,v)로 시작하셨던데 start +1 안하고 그냥 combi(0,v)로 하면 안되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 p131 3개의 멤버변수 정렬하기
해결되었습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 질문있습니다.
while(e<n){ if(cnt[a[e]]==0){ cnt[a[e]]++; e++; } else{ ret+=(e-s); cnt[a[s]]--; s++; } }강사님 안녕하세요?else문에서 cnt[a[s]]-- 대신 cnt[a[e]]--로 하면 틀리는 이유를 모르겠습니다. 어차피 a[s]랑 a[e]는 똑같은 값이어서 어떤 것을 줄여도 맞아야하는거 아닌가요?http://boj.kr/b07dba8700854c70b5f4031fbd5239c1