묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
16472 고냥이 문제
선생님 강의 잘보고있습니다강의에선 없지만 숙제로 있던 고냥이 문제를 풀어보다가 도저히 제코드의 문제를 모르겠어서 질문드립니다.올려주신 정답코드와 비교해보면 arr.pop 을 하냐 안하냐 차인데 왜 센세처럼 마지막 원소를 빼줘야 하는지 잘 모르겠습니다 ㅠㅠㅠ 어떤 반례가 있는지 잘모르겠어서 의도를 이해못했습니다ㅠㅠ
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
1090 완전탐색 체커문제 풀이 공유는 안해주시나요 ..
설명하시는것 까지는 이해가되는데 구현으로 어떻게 해야될지 감이 안잡혀서요 .. 혹시 강사님 풀이하신거 링크 없으실까요?
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
05_adtFileIO 프로젝트 문의
안녕하세요. 선생님! 에러는 아니고, 프로그램 완성도 측면에서 버그 발견하여혹시몰라서 공유드립니다.프로젝트이름: 05_adtFileIO소스파일: singleList.c함수명: AddNewNode, SearchListByNameNew(유저추가) > Search > offset 0의 유저로만 찾아지는 버그수정방안새로운 유저 추가 시, g_listCount로 offset 셋팅검색 시, 캐싱된 데이터 조회(파일에 아직 저장 안한상황 대응)
-
해결됨코딩테스트 [ ALL IN ONE ]
doubly linked list 질문입니다.
안녕하세요. 수업을 듣다 질문 사항이 생겨서 이렇게 문의 남깁니다. doubly linked list로 구성된 '''from collections import deque# deque 선언q = deque()'''에서 'enqueue ' , 'dequeue '의 시간 복잡도가 O(1)인데, 중간에 데이터가 삽입되고 삭제 되는 경우도 시간 복잡도가 O(1)인가요?
-
해결됨Do it! 알고리즘 코딩테스트 with JAVA
스택문제 백준 1874
강의내용의 코드가 헷갈려서 아래내용대로 수정해보았는데 이렇게 해도 될까요 ? public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt(); // 수열의 개수int A[] = new int[N]; // 수열을 저장할 배열// 데이터 입력for (int i = 0; i < N; i++) {A[i] = sc.nextInt();} Stack<Integer> stack = new Stack<>();StringBuffer bf = new StringBuffer(); // 연산 출력 저장 int num = 1;for (int i = 0; i < N; i++) {int su = A[i];while (su >= num) { // 현재 수가 스택의 수와 같거나 큰 경우stack.push(num++);bf.append("+\n");}if (stack.isEmpty() || stack.peek() != su) {System.out.println("NO");return;}stack.pop();bf.append("-\n");} System.out.println(bf.toString()); // 결과 출력}}
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
활용 DP 질문
선생님, 안녕하세요다름이아니라 6강까지 꾸역꾸역 이해했다고 생각했는데 7강에서 막히네요 문제 1에서는 for문으로 변경할때 역순으로 dp를 채워주었는데 왜 문제 2냅색은 앞방향으로 for문을 도는건가요?저는 6강에서 이해하기를 문제1, 문제2 모두 recursion을 통해 결국 맨 마지막 까지 도달한뒤 base condition을 통해 계산하면서 => 뒤에서 부터 계산하면서 dp를 채워준다고 생각했습니다그리고 7강에서 recursion 대신에 for문을 통해 dp를 채워준다고 이해하고 강의를 보았는데요 문제1에 대해서는 for문을 역순으로 도는데 왜 문제2는 역순으로 돌지 않는지 잘 이해가 안갑니다. 둘의 차이가 뭔가요? 차이가 있다면 왜 6강에서는 둘다 똑같은 틀로 문제를 푼건가요? 정말 이해하고싶은데 어렵네요 ㅠㅠ
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
그래프 짤 때 adjacency matrix vs adjacency list
안녕하세요 정말 강의 잘 듣고 있습니다. 저는 코딩을 영어로 공부하고 있는데 지금까지 봤던 문제들 중에서 graph 를 짜는 부분에서 adjacency matrix 와 adjacency list 두 종류를 쓰셨는데 강의에서 말씀하신 부분을 보면 모든 면에서 adjacency list 가 더 낫지 않나요? 특히나 메모리를 적게 쓰는 부분과 더 짜기가 쉽다는 부분에 있어서요. adjacency marix 가 adjacency list 보다 선호되는 케이스가 혹시 있는지 궁금해서 질문 드립니다. 그리고 adjacency list 를 만드실 때 리스트 안에 리스트를 만드는 설정을 하셨는데 혹시 해시맵에 리스트를 넣어서 하는 게 더 보편적인건가요?추가) 아 그리고 visited 는 list 에 False 로 채워넣는것 대신에 set() 으로 하는 게 더 메모리에 좋을까요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2강 3020 시간초과
안녕하세요! 2강 3020 백준에서 풀어보니 시간초과가 뜨더라구요그래서 선생님 답안지랑 비교해보니 맨위에 import sysinput = sys.stdin.readline를 쓰신걸 확인하고 추가해서 통과했습니다.찾아보니까 input보다 성능이 좋다고 하는데 그럼 모든 문제에 풀때 입력 방식으로 넣으면 좋은걸까요 ?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2강 14252 힌트
안녕하세요 수업 잘듣고있습니다.궁금한 점이 있어 문의드립니다문제는 인접한수가 서로소일수 있도록 숫자를 추가해야하는 문제로 이해했습니다. 강의에서 숫자를 하나만 넣거나 두개를 넣거나 밖에 경우의 수가 없다고하셨는데 그 이유가 궁금합니다. 저도 이유가 궁금해서 찾아보긴 했는데 연속되는 바로 옆의 수를 추가해주면 되기 때문에 최대 2개의 수만 추가하면 된다고 보았거든요. 그런데 강의 자료의 힌트를 보면 2184, 2200 사이에 2185, 2199가 아닌 2195, 2199를 넣으면 된다고 해서 정확히 이해가 안되었어요 왜 3개 4개를 넣지 않고 두개까지만 넣어도 괜찮은걸까요? 무조건 두수 사이에 하나가 아니면 두개가 들어가면 조건을 만족하는 걸 실제 코테에서 어떻게 유추해야할지 감이 안잡히네요 ㅠ
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
2644문제(촌수 구하기) 질문입니다.
1) 이 문제는 2차월 배열에 False로 초기화한다음 입력받은값만 True로 썼는데 이 문제도 메모리 낭비를 위해 빈 리스트에 넣어서 풀려면 어떻게 해야 할까요?? 2) 재귀(1)중간에 재귀(2)타고 여기서 재귀(3)타고 재귀(4)타서 값을 찾았을때 리턴을 했는데요 리턴을 했다고 해서 1,2,3번의 반복문을 break하는건 아니더라고요 어짜피 답은 찾았으니 시간낭비 방지를 위해 반복문을 돌지 않는방법이 있나요?
-
해결됨코딩테스트 [ ALL IN ONE ]
노션 링크 신청했습니다 ~
노션 링크 신청했습니다 ~ 감사합니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
노션 링크 공유 부탁드립니다.
내일 부터 학습 시작하려고 합니다.노션 링크 공유 부탁드립니다ㅎㅎ
-
해결됨코딩테스트 [ ALL IN ONE ]
노션 공유
안녕하세요!CS와 코딩테스트 두 과목 오늘 수강신청을 했고,공유해주셨다는 메일을 받았는데...노션을 보니 CS만 보이고 코딩테스트쪽은 공유된 문서가 안보여서요!!메일 이후에 따로 공유해주시는건지 궁금합니다.😀
-
해결됨코딩테스트 [ ALL IN ONE ]
노션 공유
노션 공유 해주셨다고 했는데 cng121958@gmail.com으로 다시 공유해주실 수 있나요? 공유가 아직 안된 것 같습니다..
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
스택 질문
여기 두번째 출력이 왜 4, 3, 인가요?? 1, 2가 나와야 하는거 아닌가요...?ㅠㅠㅠ 제가 이해를 잘못했나요ㅜㅜ
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
백준11659 구간합 런타임 에러
하루코딩님 안녕하세요, 열심히 강의 들으면서 공부중입니다 항상 감사드려요public class tes { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); int[] arr = new int[N + 1]; StringBuilder sb = new StringBuilder(); st = new StringTokenizer(br.readLine()); for(int i = 1; i <= N; i++) { //누적 합 저장 arr[i] = arr[i - 1] + Integer.parseInt(st.nextToken()); } for(int i = 0; i < M; i++) { st = new StringTokenizer(br.readLine()); int start = Integer.parseInt(st.nextToken()); int end = Integer.parseInt(st.nextToken()); sb.append(arr[end] - arr[start - 1]).append("\n"); } System.out.println(sb); } } 위와 같이 구현을 하고 실제로 콘솔에서 제가 아래와 같이 입력하면 tokenizer에서 exception이 발생합니다5 3 5 4 3 2 1 Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.StringTokenizer.nextToken(StringTokenizer.java:347) at tes.main(tes.java:19) 디버깅을 해보면 첫번째 5 3 입력값은 잘 읽어서 tokenizer에 저장이 되었는데요,두번째 인풋인 "5 4 3 2 1"은 입력후 엔터를 치면 st = new StringTokenizer(br.readLine()); 라인을 넘어가면 실제 br(BufferedReader)에는 "[\n, 5, 4, 3, 2, 1, \n, , , , ,.. " 처럼 들어가 있는데 st(stringTokenizer)의 str 값을 보면 "" 이렇게 비어있어요 그래서 nextToken()이 없어 에러가 나는것같은데요 왜 제 itellij에서만 그럴까요 ? ㅠㅠㅠ jdk17 사용하고있습니다
-
미해결자료구조 기본 개념 정리
자료구조 기본 개념 정리 - 순환큐 강의 내용 질문
자료구조 기본 개념 정리 - 순환큐이 강의에서 7:20 경에 self.head를 4라고 강사님이 말씀하시는데 영상처럼 초록색 화살표가 찍힌 0을 가리켜야 맞는거 아닌가요? 제가 이해를 잘못하고 있는지 강사님이 잘못 말씀하신건지 의문입니다.코드는 enqueue 메서드 안에 if((self.tail+1) % self.k == self.head): 이부분 설명하는 데입니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2차원 DP 1937
#1937왜 마지막에 +1 해주는거죠?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
냅색 12865
물건을 안 넣은 경우에도 idx+1 해주어야하지 않나요?
-
해결됨코딩테스트 [ ALL IN ONE ]
dfs, bfs 1번문제 dfs코드
안녕하세요 bfs코드로 문제를 푸셨는데 이 문제를 dfs코드로 푸신 것도 볼 수 있을까요? (bfs로 푸신 것은 이해했습니다만 dfs는 dx, dy를 어떻게 적용해야하는지 궁금해서요)또한 bfs는 최단거리 구할때 풀고 이외에는 dfs로 풀면 되는 것으로 아는데 애초에 bfs로 모든 문제를 접근하게 되면 최단거리 문제도 풀 수 있으니 dfs보다 포괄하는 문제유형이 많아서 효율적인 것이 아닌가요?좋은 강의 해주셔서 감사합니다.