묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A 2178) tie(y,x)=q.front(); q,pop(); ??
안녕하세요!아직 실력이 부족하여 강사님의 코드를 하나하나 이해하며 공부하고 있는데 2-A 2178 DFS 문의드립니다.tie(y,x) = q.front(); , q.pop(); 코드가 이해되지 않습니다...int main(){ scanf("%d %d", &n, &m); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ scanf("%1d", &a[i][j]); } } queue<pair<int, int>> q; //먼저 큐를 정의하고 visited[0][0] = 1; // 시작점 0,0 방문하여 q.push({0, 0}); // 큐에 0,0 값을 넣어줍니다. while(q.size()){ //큐에 값이 있을 때까지 반복 tie(y, x) = q.front(); q.pop(); // y= q.first, x=q.second 뜻으로 tie를 써주고// pop...가장 앞에 요소를 제거..? for(int i = 0; i < 4; i++){ //현재 위치에서 상하좌우에 1이 있는지 탐색 int ny = y + dy[i]; int nx = x + dx[i]; if(ny < 0 || ny >= n || nx < 0 || nx >= m || a[ny][nx] == 0) continue; if(visited[ny][nx]) continue; visited[ny][nx] = visited[y][x] + 1; q.push({ny, nx}); } } printf("%d", visited[n - 1][m - 1]); return 0; 그럼 답변 부탁드립니다..
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
Queue 자료구조 사용시 시간초과 문제
강사님, 안녕하세요. 토마토문제 testcase 4, 5에서 시간초과 오류가 발생하고 있습니다. 정답코드를 넣어봐도 같은 문제가 발생합니다. 다른 학생분들이 올린 질문에 답변하신 것을 찾아보니, 정답코드를 넣어도 시간초과가 발생하는 것은 컴퓨터 성능문제라고 하셨습니다. 그런데 다른 문제에서는 안그러는데 자꾸 queue를 사용하는 경우에만 이런 성능문제로 인한 시간초과가 발생하는데 이유가 뭔가요? queue가 다른 자료구조보다 사용하는데 시간이 많이 걸리나요? 감사합니다.
-
미해결정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)
Level Order Of BinaryTree 질문드립니다.
안녕하세요. 강사님. Level Order Of BinaryTree 강좌 내용중 궁금한 내용이 있어서요. 맨 처음 아래 코드를 통해 Queue 에 TreeNode 객체를 추가하면 Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); 강좌에 있는 아래의 모양으로 셋팅되는 부분은 이해가 되는데요. 아래 코드의 중간 부분 for 영역에서 가로로 돌아가는지 이해가 되질 않습니다. while(!queue.isEmpty()) { int size = queue.size(); List<Integer> list = new LinkedList<>(); for(int i=0; i<size; i++) { TreeNode node = queue.poll(); list.add(node.val); if(node.left != null) { queue.offer(node.left); } if(node.right != null) { queue.offer(node.right); } } result.add(list); } Q1. 어떻게 가로로 순차로 돌아가는 것인지.. 왜 queue.size = 3 이 나오는지도요. i=0, 3 i=1, 4 -> 5 i=2, 6 -> 7 Q2. node.left 와 node.right 를 다시 queue.offer 해주고 있는데 이 부분이 어떻게 처리되는지.. 번거로우시겠지만 그림으로 설명을 부탁드려도 될까요?