학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 궁금증이 생겨서 질문을 남깁니다. 배열로 데이터를 첫 번째 위치에 추가, n 번째 위치에 추가, 마지막 위치에 추가 하는것 을 잘 보았습니다. 근데 강의를 들으면서 객체 배열(ex: Integer)이면 어떻게 해야하지 라느 생각을 하게 되었습니다. 30개 제한이 있는 객체 배열이 있고 값이 20개(0~19) 까지만 담아져 있고, 나머지 값(19~29번째 )은 'null' 이라고 한다면, 마지막의 값(21번째에 넣겟다는 뜻입니다.)은 어떻게 넣지? 라는 생각을 하게 되었습니다. 이런 경우 어떻게 해야 하나요? 혹 나중 강의에 이런 내용 같은 게 나오나요?(그러면 강의를 통해서 배우면 되니까 안 알켜주셔도 됩니다.) 답변 부탁 드립니다.
안녕하세요 강의를 들으면서 코딩테스트를 준비하는 취준생입니다. 먼저 좋은 강의를 만들어주셔서 감사합니다. 질문드릴 사항은 39번 제가 풀고 채점을 돌렸는데 1 ~ 5 다 틀렸다고 뜹니다. 그래서 채점 폴터의 in1 ~ in4를 직접 넣고 돌린 결과를 out1 ~ out4까지 비교 해봤는데 제가봤을 때는 정답입니다. 그래서 뭐때문에 틀린지 여쭤보고 싶습니다. 아래는 제가 작성한 코드입니다. #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { int N; scanf("%d", &N); int nArr = (int )malloc(N*sizeof(int)); for(int i = 0; i < N; i++) { scanf("%d", &nArr[i]); } int M; scanf("%d", &M); int mArr = (int )malloc(M*sizeof(int)); for(int i = 0; i < M; i++) { scanf("%d", &mArr[i]); } int res = (int )malloc((N+M)*sizeof(int)); for(int i = 0; i < N; i++) { res[i] = nArr[i]; } int jj = 0; for(int i = N; i < (N+M); i++) { res[i] = mArr[jj]; jj++; } int tmp; for(int i = 0; i < (N+M); i++) { for(int j = i+1; j < (N+M); j++) { if (res[i] > res[j]) { tmp = res[i]; res[i] = res[j]; res[j] = tmp; } } } for(int i = 0; i < (N+M); i++) { printf("%d ", res[i]); } free(nArr); free(mArr); free(res); return 0; }
안녕하세요 강사님 강사님 강의를 듣고 다른 코테를 풀던 중 아직도 머릿속에서 잊혀지지 않는 문제가 있습니다. 이 문제는 O(n^2)으로 풀어서는 안되는데 제 생각엔 Dynamic Programming 문제인 거 같습니다. 일단 문제는 아래와 같은데 N 이 주어져 이 N은 1~200,000 이고 그 N에 해당하는 숫자의 다른 음의 정수, 0, 양의 정수가 주어집니다 예를 들어 데이터는 아래와 같습니다. 6 0 1 -1 2 -2 3 이렇게 주어졌을 때 내가 한 숫자를 0으로 만들 수 있습니다. 그리고 하나씩 차례대로 더했을 때 0이 가장 많이 나오는 경우의 수 를 구하는 겁니다. 이 경우 제가 3을 0으로 만들면 첫 0 의 카운트 1개 그리고 두번째 1를 더해서 1이고 다시 -1를 더하면 0이 됩니다. 이제 카운트는 2개고 2를 더하면 2고 -2를 더하면 0입니다. 다시 카운트가 3입니다. 그리고 마지막 3을 0으로 만들면 카운트가 4가 됩니다. 그래서 답은 4입니다. 참고로 정렬은 불가합니다. 즉 숫자들이 나열되어 있을 때 그걸 하나씩 다 더해서 0이 최대로 나오는 경우를 세는 건데 이 때 그 수 중 딱 한번 0으로 만들 수 있다는 것입니다. 이문제가 DP 문제인 것 같은데 도저히 어떻게 풀어야 될지 감이 안잡힙니다.. 물론 강의 문제는 아니지만 도움을 주실 수 있을까 해서 요청드립니다.
Q1) 2, 3, ..., N차원 맨해튼 거리에서 각 차원은 서로 독립적인게 맞나요? ex) 2차원인 x, y에서 x의 맨해튼 거리의 최소값과 y축 거리의 최소값은 서로 독립적이라 전체 최소값은 결국 x 맨해튼 거리 최솟값인 x좌표, y 맨해튼 거리가 최솟값인 y 좌표 Q2) N+1개 이상의 N차원 맨해튼 거리의 최솟값은 항상 주어진 점 위에 존재하게 되는건가요? ex) 점이 3개 혹은 4개가 주어진 2차원 맨해튼 거리 최소값은 무조건 주어진 점 위에 있는것인지?
안녕하세요, 강의를 듣고 계신 여러분! 여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기 단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! gpt에선 이러한 코드가 정상적이지 않은 코드라고 합니다.아래는 계속 되는 질문을 통해 얻어낸 답입니다. 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요! 섹션2 첫강의 N = int(input()) result = 0 for i in range(1, N + 1): result += i print(result) input()함수처리 이해가안됩니다 txt 파일에서 1 과 3을 입력해 int()로 형변환이되면 정수 하나만 처리되는게 아닌지요? 파이참에선 입력이 1로 처리되는걸로봐선 1과 3 문자열로 처리되고 앞의 정수 1만 값을 인지하여 N = 1이 되는거 같습니다. 파이참과 강의에서 사용하는 애디터의 코드 가 다른 부분이 다른 강의에서도 많을까요?? input.txt에서1 3은 Sublime Text 3 어떻게 처리가되는걸까요 ? 1은 입력이된고고 3, 10,100,1000등만 입력되는거네요…!?
안녕하세요, 강의를 듣고 계신 여러분! 여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기 단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요! 강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지 를 명확히 제시해 주시면 답변에 도움이 됩니다! 자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의 에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해 했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의 자신은 어떻게 이해했는지 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해 어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요?
http://boj.kr/4b11a8bf3b45426db8f2ee73adf6c896 문제가 잘 이해가 되지 않는 경우인데요.. 숫자의 앞에 0이 있는 경우에는 정리하면서 생략할 수 있다 그럼 아래 입력에서는 11이 나와야하는것이 아닌가요..? 입력: 10001 선생님 출력: 10001 제 출력: 11
안녕하세요 강사님, 재귀함수 이해하기[문제풀이]: BOJ 10870 문제 풀이에서 궁금한 점이 있어 질문드립니다. 아래는 제 코드입니다. 백준 제출시 런타임 에러가 발생합니다. 시간 복잡도는 O(n)이 나와서 문제가 없는 듯한데, 재귀 호출이 너무 깊어져서 발생하는 문제인지, 궁금하여 여쭤봅니다. 감사합니다. import sys input1 = int(sys.stdin.readline()) def fibo(n, n_1, n_2): if n == 1: return n_1 else: return fibo(n-1, n_1+n_2, n_1) result = fibo(input1, 1, 0) print(result)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. int na = max(0, a - _a[i][0]); int nb = max(0, b - _a[i][1]); int nc = max(0, c - _a[i][2]); 선생님 이 코드가 이해가 잘 안됩니다. 저는 처음에 빼는 과정을 백트래킹으로 풀어야 되나라는 생각을 가졌습니다. 왜냐하면 빼고 나서 0을 넘어가 버리거나 또는 0 근처에서 끝날거 같은 경우를 생각해야 된다고 생각을 했습니다. 하지만 이런식으로 하면 결국 6번만 돌리고 "0을 넘어가 버리거나 또는 0 근처에서 끝날거 같은 경우"가 발생하지 않나요???
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이문제..강의도 보고 문제를 여러번 봐도 이해가 안되는데 어떡하죠?!...
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님! https://www.acmicpc.net/source/share/07a82a5f33424bcca66273c307cfe5fc bfs로도 구현해보고 싶어서 구현해봤는데, 시간초과가 납니다! 제가 생각하기에는 시간 초과 날 곳이 없어보여서 질문드립니다ㅠㅠㅠ
package Algorithm; import java.util.*; public class 암호 { public String solution(int n ,String s) { String answer = ""; for(int i=0; i<n; i++){ s = s.substring(0,7).replace('#','1').replace('*','0'); int num = Integer.parseInt(s,2); // 2 진수로 들어온 것을 10진수로 변경하는 방법 문자열 -> 숫자 answer += (char)num; s=s.substring(7); // 끝까지 나오기! // substring (인덱스 해당 , 인덱스 해당 안됨) } return answer; } public static void main(String[] args) { 암호 t = new 암호(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); String str = kb.next(); System.out.println(t.solution(n, str)); } } 혹시 이렇게 풀면 왜 틀리는 건가요...? 감사합니다! Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor( Scanner.java:939 ) at java.base/ java.util.Scanner.next ( Scanner.java:1594 ) at java.base/java.util.Scanner.nextInt( Scanner.java:2258 ) at java.base/java.util.Scanner.nextInt( Scanner.java:2212 ) at Algorithm.암호.main( 암호.java:23 )