묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문있습니다
http://boj.kr/ecb100ac42614c8ea69e9d8d99a8d7c6트리를 스트럭트로 만들어서 삭제할때는 continue를 하게끔 구현했습니다.예제는 다 맞았는데 제출시 어떤부분에서 반례가 발생하는지 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 질문 있습니다
http://boj.kr/274cddfc8f7c407dbb80ceb768312ab4이렇게 풀었는데 백준에서는 맞다고 하는데 vscode에서는 계속 값이 출력이 안됩니다. 디버깅을 위해 while(cin >> n){ cout << "n 입력 : " << n; ret = 1; cnt = 1;이런식으로 해보아도 출력되는 것이 전혀 없는데 뭐가 문제일까요..? Dev-C++로도 출력이 안됩니다...!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이방식은 시간초과로 되지않을까요?
이방식은 예시는 잘 돌아가는데 추후 시간초과같은걸로 컷 엣지를 하지못해 틀린 답일까요?n = int(input()) data = list(map(int, input().split())) ch = [0]*n def dfs(num): if num == n: choose = 0 unchoose = 0 for i in range(n): if ch[i] == 1: choose += data[i] else: unchoose += data[i] if choose == unchoose: print("YES") exit() return ch[num] = 1 dfs(num+1) ch[num] = 0 dfs(num+1) dfs(0) print("NO")
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
타임에러가 왜 나타나는지 모르겠습니다
static void solution(Queue<Point> q, int[][] box) { while (!q.isEmpty()) { // int len = q.size(); // for (int i = 0; i < len; i++) { Point tmp = q.poll(); for (int j = 0; j < 4; j++) { int nx = tmp.x + dx[j]; int ny = tmp.y + dy[j]; if (nx >= 0 && ny >= 0 && nx < n && ny < m && box[nx][ny] == 0) { box[nx][ny] = 1; q.offer(new Point(nx, ny)); dis[nx][ny] = dis[tmp.x][tmp.y] + 1; } // } } } }위에서 주석처리된 queue의 사이즈를 구한 후 레벨 탐색(?)으로 진행하게 되면 타임에러가 발생하는데 왜 발생하는지 모르겠습니다. 성능 차이가 많이 나나요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
완탐-원복 강의 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.1.해당 강의 4:26초에서 1과 인접한 노드는 0과 2뿐이라고 말하셨는데 3도 인접한 노드 아닌가요?? go함수내에 있는 go함수의 동작이 모두 끝난후 원복에 관한 코드를 보면 노드 2를 0상태, 즉 방문하지 않은 상태로 돌리고 v벡터에서 제거하는 동작까지는 이해를 했습니다. 하지만 그 이후에 3이 다시 들어가는 원리를 이해 못하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
런타임 에러 질문있습니다!
강사님 강의듣기전에 혼자서 문제를 풀어보았는데, 인덱스 범위 에러인지 런타임 에러가 자꾸 뜹니다 ㅠ몇번 다시 보았지만 찾기가 힘들어서 문의남깁니다!https://www.acmicpc.net/source/81750296
-
미해결김영한의 실전 자바 - 중급 2편
자료구조 제네릭 타입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Set, List, Map 등 자바에서 제공하는 자료구조에 제네릭 타입을 특정해서 정하지 않고, Object로 사용하면 하나의 자료구조에 여러 가지 데이터 타입을 저장하고 관리할 수도 있을 것 같은데선생님 수업에서는 거의 Integer 혹은 String으로 제네릭 타입을 정하고 사용을 하시는 부분이 많더라구요.궁금한 점은 제네릭 타입을 Object로 사용하는 것이 타입 안정성 때문에 보통은 사용을 안 하는 건지 만약 사용을 한다고 할때 자료구조의 메서드 사용에는 문제 없는지 알고싶습니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
인덱스정렬 강의, 04_ListAndIndex질문드립니다.
안녕하세요 강사님04_ListAndIndex의 원본 코드의 signleList.c파일의SearchByIndexAgeRange함수의 354번째 줄 라인에서int length = idxMax - idxMin + 1; USERDATA** aSelected = malloc(sizeof(void*) * length); memcpy(aSelected, aList + idxMin, sizeof(void*) * length);와 같이 aSelected의 리턴 타입이 USERDATA** 인데왜 malloc으로 생성할때, "malloc(sizeof(void*) * length);"로왜 void*의 size만큼 생성해주는지 잘 모르겠습니다.USERDATA** aSelected = malloc(sizeof(USERDATA*) * length);다음 위의 코드처럼 "malloc(sizeof(USERDATA*) length);"즉, USERDATA*의 size가되어야 알맞지 않나요??아니면 USERDATA*와 void* 모두 크기가 8byte라서 메모리가 할당되는 크기가 같은건가요?? 제가 알고 있는 개념이 맞는걸까요??강의 잘 듣고있습니다 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
range-based for loop is a C++11 extension [-Wc++11-extensions] for(int k : v) cout << k << " ";
맥북 m1 프로에서 실행하려고하는데 위 오류가 납니다.벡터없이 배열로 돌리는 코드까진 잘 돌아갔는데#include <bits/stdc++.h> using namespace std; int main() { int a[] = {1, 2, 3}; do { for(int i : a) cout << i << " "; cout << '\n'; } while(next_permutation(a, a + 3));이렇게 벡터를 추가하고나서 오류가 납니다. #include <bits/stdc++.h> using namespace std; int main() { int a[] = {1, 2, 3}; do { for(int i : a) cout << i << " "; cout << '\n'; } while(next_permutation(a, a + 3)); vector<int> v = {1, 2, 3}; do { for(int k : v) cout << k << " "; cout << '\n'; } while(next_permutation(v.begin(), v.end())); return 0; } setting.json에서 "C Cpp.default.cppStandard": "c++17", } 이설정 추가 그리고 vscode 확장 -> c++17 설정도 시도해보았는데, 오류가 지속됩니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - l 시간초과
안녕하세요 선생님 제가 처음에 visited 대신해서 vector를 함수 parameter로 넘기는 방식으로 코드를 짜보았는데 시간초과가 나왔습니다. 그 이유가 무엇인지 알 수 있을까요?해당 vector를 visited로 바꾸자마자 바로 통과 했습니다.http://boj.kr/04db1b073dee466cad92e220313f886f
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P 질문입니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/2dc048384b444c409a1766d05a3eb71c안녕하세요!0의 갯수에서 3개를 골라 a배열에 1을 대입하고 값이 2인 경우 dfs 돌면서 0인 경우 카운트를 해 2 영역의 최솟값을 구했습니다. 출력은 처음 0의 갯수에서 0->1로 바뀐 3과 2영역의 최솟값인 mi를 빼서zero.size() - 3 - mi 로 구했는데 예제입력 2번에서 mi값이 0이 나오는데 어떤 오류인지 모르겠어 질문남깁니다.
-
미해결김영한의 실전 자바 - 중급 2편
List인터페이스를 sout 할때 질문입니다.
링크드리스트의 list를 그냥 System.out.println(list); 했을때, 아래의 내용이 맞는지 궁금합니다. LinkedList의 toString 메서드는 AbstractCollection 클래스에서 오버라이딩된 toString 메서드를 상속받아 사용합니다.
-
미해결김영한의 실전 자바 - 중급 2편
TreeSet으로 자동 변환
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================Set 정리 14:58에서데이터 개수가 8개 이상이 되면 TreeSet으로 바꿔서 equals를 수행한다는 말씀은,HashSet, LinkedListSet으로 선언하여도 자바가 탐색 시에만 자동으로 변경한다는 말인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - k 시간초과
http://boj.kr/5fc8cc89f6834d188f39c1d3b3e98426안녕하세요 선생님 제가 짠 코드가 계속 시간초과가 나와서 방법을 찾지 못하겠습니다. 도와주시면 감사하겠습니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
입력값이 해당 경우일때는 왜 YES가 나오는지 궁금합니다.
안녕하세요 선생님 질문이 있습니다.())(() 이 경우는 NO가 나오는데 ((())()) 이 경우는 YES가 나옵니다.문제에서 요구하는 것이 괄호의 갯수가 짝이 맞는것 인지를 파악하는게 아니라 '()' 해당 모양이 만들어 지는지를 묻는 문제 인가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
String.valueOf(CNT)
3:03초보면 앞뒤 문자가 다르면 answer에 해당 i값을 추가하고 나서 cnt를 1로 초기화하는데 왜 소스코드에는 cnt>1이상인 경우를 추가해서 ans+=String.valueOf(cnt)를 해주는 건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간복잡도와 연산량의 관계 질문
안녕하세요 강사님.늘 강의 잘 듣고 있습니다.시간복잡도와 연산량의 관계를 질문 드리고 싶습니다.크기 N인 입력에 대해 코드의 연산량이 2n^2 + 3n 일때,빅O 표기법으로 시간복잡도를 표현하면 O(n^2)입니다.그런데, 실제로 해당 연산량이 주어진 시간에 통과하는지 판단할 때는 최고차항의 계수도 고려해야하나요?예를 들어, 1초에 연산량이 1억이고, N이 10000이라면 빅O표기법의 n^2은 1억이어서 시간 안에 통과하지만, 2n^2은 1억을 넘어 시간 초과가 발생하니, 실제로 위의 코드는 시간을 초과하는 코드라고 봐야하나요? 감사합니다.
-
미해결김영한의 실전 자바 - 중급 2편
add 부분 코드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 코드는 LinkedList<Integer> bucket = new LinkedList - > buket = bukets[hashIndex] 이렇게 이어지는 코드인건가요 ..? bukets이라는 linkedlist의 배열을 만들고 bukets 1 bukets 2 하나 하나에 linkedlist를 넣는 과정인건 알겠는데 저 buket은 어떻게 나온 코드인지 모르겠어요 ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 시간복잡도 관련되어서 질문있습니다.
http://boj.kr/3b0abc4140db4fb99ac8425db2530f33저는 n의 최대값이 15000이기 때문에 15000*15000을 하면 2억이 넘어버려 시간 초과가 날것이라고 생각하여 저렇게 접근을 하였습니다.그런데 저렇게 더 간단하게 풀리는걸 보니 시간초과가 날 거 같더라도 일단은 먼저 간단한 방법으로 풀어본 뒤 시간초과가 나면 그때서야 다른 방법으로 접근을 하는 것이 맞을까요?
-
미해결김영한의 실전 자바 - 중급 2편
와일드카드
[질문 내용]package generic.test.ex5; import generic.animal.Animal; import generic.animal.Cat; import generic.animal.Dog; public class WildCardMain2 { public static void main(String[] args) { Box<Object> objBox = new Box<>(); Box<Animal> animalBox = new Box<>(); Box<Dog> dogBox = new Box<Dog>(); Box<Cat> catBox = new Box<Cat>(); //writeBox(objBox); writeBox(animalBox); Animal animal = animalBox.get(); System.out.println("animal = " + animal); } static void writeBox(Box<? extends Animal> box) { box.set(new Dog("멍멍이", 100)); } }package generic.test.ex5; public class Box<T> { private T value; public void set(T value) { this.value = value; } public T get() { return value; } }======질문 수정extends를 대입하면 Animal 이하의 개체(예: Cat, Dog)들이 전달 가능해지고, 이는 Dog를 담을 수 없기 때문에 컴파일 오류가 발생한다고 이해했습니다. 따라서 Super를 통해 이런 가능성을 차단합니다. 제가 이해한 것이 맞을까요?