묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-E 왜 틀렸는지 궁금합니다.
자바로 질문해도 괜찮을까요? 만약에 된다면저는 자바로 코테를 준비해서 자바로 풀었습니다.46퍼에서 계속 틀렸다고 나오는데 강의랑 같은 방법으로 답안을 적었다고 생각합니다.제가 무엇을 잘못했는지 궁금합니다.import java.util.*; import java.io.*; public class P12869 { static int n, ret = Integer.MAX_VALUE; static int[][][] scv = new int[61][61][61]; static int[] input = new int[3]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()); for(int i=0; i<n; i++) { input[i] = Integer.parseInt(st.nextToken()); } int[][] dire = new int[][]{{-9,-3,-1},{-9,-1,-3}, {-3,-9,-1},{-3,-1,-9}, {-1,-3,-9},{-1,-9,-2}}; Queue<int[]> q = new LinkedList<>(); q.add(input); scv[input[0]][input[1]][input[2]] = 1; while(!q.isEmpty()) { int[] cur = q.poll(); if(cur[0]==0&&cur[1]==0&&cur[2]==0) break; for(int i=0; i<6; i++) { int na = (cur[0] + dire[i][0])<0? 0 : cur[0] + dire[i][0]; int nb = (cur[1] + dire[i][1])<0? 0 : cur[1] + dire[i][1]; int nc = (cur[2] + dire[i][2])<0? 0 : cur[2] + dire[i][2]; if(scv[na][nb][nc] != 0) continue; scv[na][nb][nc] = scv[cur[0]][cur[1]][cur[2]] + 1; q.add(new int[]{na, nb, nc}); } } System.out.println(scv[0][0][0]-1); } }
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
제 실력이 미흡해서 그런지 푸는데 엄청 오래 걸렸습니다...
포기 하지 않고 끝까지 풀어서 정답을 맞추게 된것 같습니다.문제가 생각 보다 어려운것 같습니다 ㅠㅠfunction solution(arr) { let answer = []; let mento = []; const maxNum = []; for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr[i].length; j++) { const index = arr[i].indexOf(arr[0][j]); for (let k = 0; k < index; k++) { maxNum.push([arr[0][j], arr[i][k]]); } for (let z = 0; z < arr[i].length; z++) { if (j < z) { mento.push([arr[i][j], arr[i][z]]); } } } } for (p = 0; p < maxNum.length; p++) { mento = mento.filter( (t) => !(maxNum[p][0] === t[0] && maxNum[p][1] === t[1]) ); } answer = new Set(mento.map((v) => v.join(""))); return [...answer].length; } const question = [ [3, 4, 1, 2], [4, 3, 2, 1], [3, 1, 4, 2], ]; console.log(solution(question));좋은 코드는 아닌것 같지만, 최대한 노력을 했습니다const question = [ [3, 4, 1, 2], [4, 3, 2, 1], [3, 1, 4, 2], ]; console.log(solution(question)); let arr = [[1, 2, 3, 4, 5]]; console.log(solution(arr)); let arr2 = [ [19, 15, 4, 17, 12, 18, 6, 3, 11, 14, 1, 8, 13, 9, 2, 20, 5, 16, 10, 7], [5, 20, 18, 17, 14, 11, 19, 3, 10, 16, 6, 8, 13, 9, 2, 12, 4, 7, 1, 15], ]; console.log(solution(arr2));다른 답들도 다 정답은 나옵니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 맞왜틀 질문있습니다.
https://www.acmicpc.net/source/70317041 문제에서 제시된 입력 값을 넣으면 올바른 출력값이 나오는데, 틀렸다고 나오니 답답합니다.어느 부분이 틀렸는지 잘 모르겠습니다.
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
백준 11720 숫자의 합 질문 있습니다
문제를 보면입력첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.라고 조건이 주어지는데 강의의 풀이를 보면 숫자의 개수를 N개로 제한하는 부분이 없고 실행해보면 N개 이상 또는 이하의 숫자가 들어가도 상관이 없이 실행되는데 보통 코테에서도 이런식으로 제한에 러프하게 코딩해도 상관이 없는 건가요?아니면 문제에 제한이 있어서 코딩에서는 제한을 따로 두지않는건가요??
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요 공부 방법 문의 드립니다.
현재 제 상황은 강사님께서 설명해주시는 내용은 모두 이해가 되는 상태입니다!!일단은 강사님이 말씀해주신대로 복습 3 / 진도 7 비율로 강의 전체를 2~3번 정도 반복해서 본 뒤에 혼자서 문제를 깊이있게 풀어보는 식으로 공부를 하는데 이것도 괜찮은 방법일까요??
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
nums 조건오류인가요?
문제에 고정된 숫자는 유일하다고 나와있는데, 2번 case의 nums에 3도 index가 3이고, 4도 index가 4라서 고정된 숫자가 2개인데 nums가 잘못된건가요?
-
해결됨코딩테스트 [ ALL IN ONE ]
노션 링크 좀 보내주세요
노션 공유 요청 드리고 24시간 기다렸는데.......노션에 어떻게 들어가나요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
점화식을 발견하기 위해서 규칙을 찾아봐야 하나요?
안녕하세요. 이 문제를 풀려면,점화식을 유추하기 위해서 입력예제 1을 활용해서 직접 dy 배열을 그려보고 1원 2원 5원 동전들을 활용하여 최소 몇개씩 필요한지 직접 써내려가면서 규칙을 찾아내는 순서로 푸는게 맞는 방법인가요? 강의에서는 선 규칙 찾기, 후 유추의 방식으로 설명하지 않으시는 것으로 생각되어 질문드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
포인터 사이즈 관련
안녕하세요 강의 수강 중에 궁금한 점이 있어 문의 남깁니다. 6분 34초를 보면 포인터의 사이즈는 8바이트라고 나오는데, 그 전에 나온 포인터 값을 보면 16진수 12자리 값이어서 6바이트 크기인 것으로 보입니다. 이 부분에서 왜 차이가 발생하는지 궁금합니다. 추가적인 질문이 있습니다. int가 4바이트고 int *가 8바이트면 메모리 효율성에서 매우 비효율 적인 것이 맞나요?물론 포인터가 매개변수 호출 등에서 장점이 있긴 하지만, 효율성 부분에서 안좋은 것 아닌지 하는 궁금증이 생겨서 여쭤봅니다. 항상 좋은 강의 감사합니다.
-
미해결자바 코딩테스트 - it 대기업 유제
문제풀이 확인 부탁드립니다.
package com.company.대기업유제.그래프; import java.util.*; class 교육과정 { public String[] solution(String[] subjects, String[] course){ String[] answer = {}; /** * n개의 교육과정 수료해야함 * 교육과목에는 선수과목이 있다. * 선수과목 관련해서는 위상정렬을 사용한다. * n개의 과목을 모두 이수할수있는 순서를 배열에 담아 반환 * (답이 여러개면 그 중 아무거나 반환) 위상정렬의 특징 * subjects : n개의 과목 목록 * course : 선수과목 정보 * */ //먼저 선수과목을 구분하기 위해 노드들을 생성 Map<String, Node> nodes = createNodes(subjects, course); //후위순회로 탐색 LinkedList<String> result = new LinkedList(); Set<Node> discovered = new HashSet<>(); for (var entry : nodes.entrySet()) { if(!discovered.contains(entry.getValue())){ DFS(entry.getValue(), result, discovered); } } return result.toArray(String[]::new); } private void DFS(Node node, LinkedList<String> result, Set<Node> discovered) { discovered.add(node); for (Node next : node.nexts) { if(!discovered.contains(next)){ DFS(next, result, discovered); } } result.addFirst(node.name); } private Map<String, Node> createNodes(String[] subjects, String[] course) { Map<String, Node> nodeMap = new HashMap<>(); for (String subject : subjects) { nodeMap.put(subject, new Node(subject)); } for (String s : course) { String[] split = s.split(" "); //선수과목 String parent = split[1]; // parent -> child String child = split[0]; Node parentNode = nodeMap.get(parent); Node childNode = nodeMap.get(child); parentNode.nexts.add(childNode); } return nodeMap; } class Node{ public Node(String name) { this.name = name; } final String name; Set<Node> nexts = new HashSet<>(); //하위 과목 } public static void main(String[] args){ 교육과정 T = new 교육과정(); System.out.println(Arrays.toString(T.solution(new String[]{"english", "math", "physics", "art", "music"}, new String[]{"art math", "physics art", "art music", "physics math", "english physics"}))); System.out.println(Arrays.toString(T.solution(new String[]{"art", "economics", "history", "chemistry"}, new String[]{"chemistry history", "economics history", "art economics"}))); System.out.println(Arrays.toString(T.solution(new String[]{"math", "science", "music", "biology"}, new String[]{"science music", "math music", "math science", "biology math"}))); } }
-
미해결자바 코딩테스트 - it 대기업 유제
혼자서 푼 문제 확인 부탁드립니다.
package com.company.대기업유제.그래프; import java.util.HashMap; import java.util.Map; import java.util.PriorityQueue; class 공굴리기 { public int solution(int[][] board, int[] s, int[] e) { /** * n * m 격자판 * 0은 빈공간 1은 벽 * * 공은 격자의 상하 좌우 네방향으로 빈공간을 이동할수있음 벽을 만나면 멈춘다. * s 공의 위치 * e 공의 목표지점 * 목표위치까지 최단거리 ㄱ * 목표지점까지 도달못하면 -1 * * */ int[] dx = {-1, 0, 1, 0}; int[] dy = {0, -1, 0, 1}; PriorityQueue<Candidate> queue = new PriorityQueue<Candidate>(); Map<String, Integer> minPosMap = new HashMap<>(); Pos first = new Pos(s[1], s[0]); for (int i = 0; i < 4; i++) { queue.add(new Candidate(first, 0, i)); } while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { Candidate candi = queue.poll(); Pos poll = candi.pos; //벽을 만나지 않았으면 가던 방향으로 계속 이동 if(!candi.frontWall(board, dx, dy)){ Pos newPos = new Pos(candi.pos.x + dx[candi.direction], candi.pos.y + dy[candi.direction]); Candidate newCandi = new Candidate(newPos, candi.cnt + 1, candi.direction); Integer basePrice = minPosMap.getOrDefault(newPos.getName(), Integer.MAX_VALUE); if (basePrice < newCandi.cnt) continue; queue.add(newCandi); minPosMap.put(newPos.getName(), newCandi.cnt); }else{ //벽을 만나면 그때 방향 돌리기 //벽을 만났을때만 목표지점 체크하기 if (poll.x == e[1] && poll.y == e[0]) { // print(board); return minPosMap.getOrDefault(poll.getName(), Integer.MAX_VALUE); } for (int j = 0; j < 4; j++) { int moveX = dx[j] + poll.x; int moveY = dy[j] + poll.y; if (moveX < 0 || moveY < 0 || moveX >= board[0].length || moveY >= board.length) continue; // * 0은 빈공간 1은 벽 if(board[moveY][moveX] == 1) continue; Pos newPos = new Pos(moveX, moveY); Candidate newCandi = new Candidate(newPos, candi.cnt + 1, j); Integer basePrice = minPosMap.getOrDefault(newPos.getName(), Integer.MAX_VALUE); if (basePrice < newCandi.cnt) continue; queue.add(newCandi); minPosMap.put(newPos.getName(), newCandi.cnt); } } } } return -1; } public void print(int[][] board){ for (int i = 0; i < board.length; i++) { for (int j : board[i]) { System.out.print(j + " "); } System.out.println(); } } class Pos { int x; int y; public Pos(int x, int y) { this.x = x; this.y = y; } public String getName() { return x + "" + y; } } class Candidate implements Comparable<Candidate> { Pos pos; int cnt; int direction; public Candidate(Pos pos, int cnt, int direction) { this.pos = pos; this.cnt = cnt; this.direction = direction; } public boolean frontWall(int[][] board, int[] dx, int[] dy){ int moveX = dx[direction] + pos.x; int moveY = dy[direction] + pos.y; if (moveX < 0 || moveY < 0 || moveX >= board[0].length || moveY >= board.length) return true; // * 0은 빈공간 1은 벽 if(board[moveY][moveX] == 1) return true; return false; } @Override public int compareTo(Candidate o) { return this.cnt - o.cnt; } } public static void main(String[] args) { 공굴리기 T = new 공굴리기(); System.out.println(T.solution(new int[][]{{0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0}, {1, 0, 1, 1, 1, 0}, {1, 0, 0, 0, 0, 0}}, new int[]{1, 0}, new int[]{4, 5})); System.out.println(T.solution(new int[][]{{0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0}, {1, 0, 1, 1, 1, 0}, {1, 0, 0, 0, 0, 0}}, new int[]{0, 0}, new int[]{4, 2})); System.out.println(T.solution(new int[][]{{1, 0, 1, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 1, 0}, {1, 1, 0, 1, 1}, {0, 0, 0, 0, 0}}, new int[]{0, 3}, new int[]{4, 2})); System.out.println(T.solution(new int[][]{{0, 1, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0}, {0, 1, 1, 0, 1, 1}, {0, 0, 0, 0, 0, 0}}, new int[]{0, 0}, new int[]{4, 5})); System.out.println(T.solution(new int[][]{{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}}, new int[]{0, 0}, new int[]{4, 3})); } } 문제를 다 이해했다고 생각했는데 한참 헤맸네요.. ㅜㅜ AI인턴이 어떻게 동작하는지 모르겠지만 AI로 답변 달아주셔도 됩니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
큰돌님 pdf p32 typedef long long ll;
typedef long long ll;이 코드가 있던데요 pdf에는 숫자 11처럼 나와있어서...계속 해보니깐 안됬었는데 영어L로 하니깐 되네요 ㅠㅠ1.저 코드의 목적은 무엇인가요??2.그리고 터미널을 보면 printf("%.6lf\n", a);를 했을때 결과가 숫자가 엄청길게 나오던데 왜그런건가요??..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
'bits/stdc++.h' file not found
이렇게 에러가 뜨는데요... 어떻게 해결해야할까요???초기세팅단계에서 계속 막히네요 ㅠㅠ ++ 그리고 pdf로 올려주신 책을 먼저보고 강의를 보는건가요?? 순서가 어떤것이 먼저인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
조합 구현 관련해서 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 혹시 임의의 배열(벡터)를 인자로 받아서 그 배열의 조합을 리턴하는 방법도 나오나요? 예를들면 vector<int> v = {10, 20, 30, 40, 50}; combi(v, 5, 3); // where 5 == n, 3 == r 10, 20, 30 10, 20, 40 ... 30, 40, 50 위와 같은 방식이요.
-
미해결자바 코딩테스트 - it 대기업 유제
혼자서 푼 문제 확인 부탁드립니다.
import java.util.HashMap; import java.util.Map; import java.util.PriorityQueue; class 방향바꾸기 { public int solution(int[][] board) { int answer = 0; /** * n * m 격자판 지도정보 * 격자판에는 각 1,2,3,4 의 값이 존재 * 1: 오른쪽의 인접한 격자로 이동 * 2. 왼쪽의 인접한 격자로 이동 * 3: 아래로 이동 * 4: 위로 이동 * 0,0부터 오른쪽 아래 맨 끝으로 이동하려고함 * board가 주어지면 목표지점까지 가기위해 방향을 바꾸는 최소 격자 개수 * 한 격자의 방향은 원하는 방향으로 한번만 바꾸기 가능 * * * */ //다익스트라로 인접 순회 할때마다 내가 그 격자를 바라보고있는지 확인 //내가 그 격자를 바라보고있으면 1추가 안함 , 바라보지 않으면 1 추가 int[] dx = {-1, 0, 1, 0}; int[] dy = {0, -1, 0, 1}; PriorityQueue<Candidate> queue = new PriorityQueue(); Map<String, Integer> minPosMap = new HashMap<>(); for (int i = 0; i < board.length; i++) { for (int j = 0; j < board[i].length; j++) { minPosMap.put(j + ":" + i, Integer.MAX_VALUE); } } Pos first = new Pos(0, 0); //첫번째 시작을 넣는다. queue.add(new Candidate(first, 0)); while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { Candidate candidate = queue.poll(); Pos pos = candidate.pos; if (pos.x == board[0].length - 1 && pos.y == board.length - 1) { // print(board, minPosMap); return candidate.cnt; } for (int j = 0; j < 4; j++) { int moveX = dx[j] + pos.x; int moveY = dy[j] + pos.y; if (moveX < 0 || moveY < 0 || moveX >= board[0].length || moveY >= board.length) continue; //현재 Pos 가 moveX, moveY 를 바라보고 있는지 체크 boolean isLookAt = isLookAt(board[pos.y][pos.x], pos, moveX, moveY); //바라보면 cnt 그대로 바라보지 않으면 cnt++ //내가 추가할 값이 기존에 있는 값보다 작아야함 Pos newPos = new Pos(moveX, moveY); int cnt; if (isLookAt) { cnt = candidate.cnt; } else { cnt = candidate.cnt + 1; } Integer baseCnt = minPosMap.get(newPos.getName()); if (cnt < baseCnt) { minPosMap.put(newPos.getName(), cnt); Candidate newCandi = new Candidate(newPos, cnt); queue.add(newCandi); } } } } return answer; } private static void print(int[][] board, Map<String, Integer> minPosMap) { int cnt = 0; for (Integer value : minPosMap.values()) { System.out.print(value + " "); cnt++; if (cnt % board[0].length == 0) System.out.println(); } } private boolean isLookAt(int direction, Pos pos, int moveX, int moveY) { int x = pos.x; int y = pos.y; // * 1: 오른쪽의 인접한 격자로 이동 // * 2. 왼쪽의 인접한 격자로 이동 // * 3: 아래로 이동 // * 4: 위로 이동 int[][] directionCalculate = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}}; return y + directionCalculate[direction - 1][0] == moveY && x + directionCalculate[direction - 1][1] == moveX; } class Pos { int x; int y; public Pos(int x, int y) { this.x = x; this.y = y; } public String getName() { return x + ":" + y; } } class Candidate implements Comparable<Candidate> { Pos pos; int cnt; public Candidate(Pos pos, int cnt) { this.pos = pos; this.cnt = cnt; } @Override public int compareTo(Candidate o) { return cnt - o.cnt; } } public static void main(String[] args) { 방향바꾸기 T = new 방향바꾸기(); System.out.println(T.solution(new int[][]{{3, 1, 3}, {1, 4, 2}, {4, 2, 3}})); System.out.println(T.solution(new int[][]{{3, 2, 1, 3}, {1, 1, 4, 2}, {3, 4, 2, 1}, {1, 2, 2, 4}})); System.out.println(T.solution(new int[][]{{3, 2, 1, 3, 1, 2}, {2, 1, 1, 1, 4, 2}, {2, 2, 2, 1, 2, 2}, {1, 3, 3, 4, 4, 4}, {1, 2, 2, 3, 3, 4}})); System.out.println(T.solution(new int[][]{{3, 2, 1, 3, 1, 2, 2, 2}, {2, 1, 1, 1, 4, 2, 1, 1}, {2, 2, 2, 1, 2, 2, 3, 4}, {1, 3, 3, 4, 4, 4, 3, 1}, {1, 2, 2, 3, 3, 4, 3, 4}, {1, 2, 2, 3, 3, 1, 1, 1}})); System.out.println(T.solution(new int[][]{{1, 2, 3, 2, 1, 3, 1, 2, 2, 2}, {1, 2, 2, 1, 1, 1, 4, 2, 1, 1}, {3, 2, 2, 2, 2, 1, 2, 2, 3, 4}, {3, 3, 1, 3, 3, 4, 4, 4, 3, 1}, {1, 1, 1, 2, 2, 3, 3, 4, 3, 4}, {1, 1, 1, 2, 2, 3, 3, 1, 1, 1}})); } }AI로 답변을 달아주시는 것 같은데 이번에도 확인 부탁드립니다. 해설을 보면 강사님이랑 풀이방식은 비슷한것같습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
mac c++ 설치관련 질문입니다.
큰돌님께서 알려주신대로 했는데 마지막코드에서 저렇게 나옵니다... :wq이후에 저렇게 나오는데 어떻게 해결해야할까요?
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
dfs 매개변수에서 y,x 를 왜 순서를 반대로 쓰셨는지 궁금합니다.
점프왕 젤리문제에서 dfs 메서드에 dfs(int x, int y)가 아닌 dfs(int y, int x)인지 궁금합니다!이전 문제부터 계속 궁금해했는데, 왜 순서를 바꾸셨는지에 대한 명확한 이유를 못찾겠어서 질문올렸습니다.// 점프왕 젤리 import java.util.*; import java.io.*; class Jump_king_jelly { static final int MAX = 3 + 100 + 10; static int map[][]; static boolean visited[][]; static int N; static int dirY[] = {1, 0}; static int dirX[] = {0, 1}; public static void dfs(int y, int x) { visited[y][x] = true; if(y == N && x == N) return; for(int i = 0; i < 2; i++) { int newY = y + dirY[i] * map[y][x]; int newX = x + dirX[i] * map[y][x]; if(visited[newY][newX] == false) { dfs(newY, newX); } } } public static void main(String[] args) throws IOException { // 0. 입력 및 초기화 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); N = Integer.parseInt(br.readLine()); map = new int[MAX][MAX]; visited = new boolean[MAX][MAX]; // 1. map에 정보 반영 for(int i = 1; i <= N; i++) { StringTokenizer st = new StringTokenizer(br.readLine()); for(int j = 1; j <= N; j++) { map[i][j] = Integer.parseInt(st.nextToken()); } } // 2. dfs 수행 dfs(1,1); // 3. 출력 if(visited[N][N]) bw.write("HaruHaru"); else bw.write("Hing"); bw.close(); br.close(); } }
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
[최적화 (정수론) 21:41 강의 질문] 문제 설명 중에 8까지의 예시를 이해하기 어렵습니다.
안녕하세요 강사님!파이썬 코딩테스트 도전하고 싶은 코린이입니다.강의를 듣고 있던 와중에 21:41초에서 계산하는 8까지의 예시 케이스를 설명하는데, 결과로 나오는 수열이 어떤 수열인지, 연산은 어떻게 되는건지 잘 이해가 되지 않습니다... 1 2 3 4 5 6 7 81 2 1 ... <<< 이게 무슨 수열인거죠? 어떻게 나온거죠? 조금만 더 상세히 설명해주시면 감사하겠습니다...문제 지시문과 영상을 여러번 읽어보아도 잘 이해가 되지 않아서 질문 남깁니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-N 1629번 질문있습니다!
http://boj.kr/32ee2c9fb69842d79baa9f0b375f68f9단순히 연산 코스트를 줄이기 위해 2등분이 아닌 3등분으로도 될까싶어서 짜봤습니다.궁금한 점은 1. 안되는 이유가 연산코스트가 줄지만 ret=(ret*ret*ret)%c; 에서 ret에서 저장할수있는 값을 초과해서일까요?3등분도 아니고 4등분도 아니고 2등분을 선택하신 이유에 대해서 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 1940 주몽 질문있습니다!!
안녕하세요 선생님.이 문제를 맵을 이용해 풀어보려고 했는데요.692 7 4 1 5 3예시가 이렇게 들어올 때 mp[2]=7, mp[7]=2, mp[4]=5 ..... 이런 식으로 저장한 후에 맵을 순회하며 그 해당 요소의 value 값과 똑같은 key의 값이 0이 아니라면 ret을 1 증가시키고 짝이 맞는 key값들은 삭제하는 로직으로 짜봤습니다.예시는 맞지만 틀립니다.궁금한 점은 1.맵을 순회하면서 맵의 요소를 erase하면 문제가 생기는지(디버깅을 해보니 제가 원하는 방식과 다르게 작동하더라구요)2.조건에 맞는 요소들을 안전하게 제거하면서 맵을 순회할수 있는 방법이 있는지입니다.http://boj.kr/8d1b67b0e4c64c5ba02d48e5a656025c