묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 메서드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. package generic.ex4; // 클래스 옆에 <> 넣으면 제네릭 타입 public class GenericMethod { public static Object objMethod(Object obj) { System.out.println("Object print: " + obj); return obj; } // 메서드 안에 <> 넣으면 제네릭 메서드 public static <T> T genericMethod(T t) { System.out.println("Generic print: " + t); return t; } public static <T extends Number> T numberMethod(T t) { System.out.println("bound print: " + t); return t; } }여기 public static <T> T genericMethod(T t) 코드를 보면 static일 때 사용이 가능한데 강의 자료에서 여기 static일 땐 사용이 불가능하다는 말이 이해가 잘 안 갑니다. 둘의 차이점이 무엇인가요?
-
해결됨김영한의 실전 자바 - 중급 2편
getter, setter
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. package generic.animal; public class Animal { private String name; private int size; // 생성자 만들기 // (Alt + Insert) Generate - Constructor public Animal(String name, int size) { this.name = name; this.size = size; } public String getName() { return name; } public int getSize() { return size; } // sound 메서드 public void sound() { System.out.println("동물 울음 소리"); } @Override public String toString() { return "Animal{" + "name='" + name + '\'' + ", size=" + size + '}'; } }이 코드에서 set()은 안 만들고 get()만 만드는 이유는 무엇인가요?
-
미해결김영한의 실전 자바 - 중급 2편
T 타입 -> Integer 타입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. package generic.ex1; public class BoxMain3 { public static void main(String[] args) { GenericBox<Integer> integerBox = new GenericBox<Integer>(); integerBox.set(10); // integerBox.set("문자"); // integer 타입만 허용, 컴파일 오류 발생 Integer integer = integerBox.get(); } }GenericBox<integer> 이렇게 작성하면 T 타입이 Integer로 바뀐거라고 하셨는데 그러면 Integer integer = integerBox.get();을 굳이 안 해도 되고 integerBox.get();이렇게만 적어줘도 되는 거 아닌가요? 또 다시 Integer 타입으로 설정해주는 이유는 무엇인가요?
-
미해결김영한의 실전 자바 - 중급 2편
다운캐스팅
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. package generic.ex1; public class BoxMain2 { public static void main(String[] args) { ObjectBox objectBox = new ObjectBox(); objectBox.set(10); Object object = objectBox.get(); System.out.println(object); } }이렇게 해도 잘 출력되는데 다운캐스팅을 또 해줘야 하는 이유가 무엇인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-V 질문있습니다 :)
안녕하세요 선생님 🙂 한 가지 이해가 되지 않는 부분이 있어서 질문 드립니다. 이 코드에서 int& result = dp[here][_time] 이라는 코드는, 항상 result = 0이라는 것을 의미합니다. 그렇기 때문에 굳이 dp라는 배열이 필요한 것인지에 대한 의문이 생겨 아래의 테스트를 해보았습니다. int result = 0이라고 한다면, 레퍼런스 값이 아닌 복사본을 사용하기 때문에 시간초과가 되어 2번 서브태스크가 오답처리됩니다. 그렇다면, 전역에 int a = 0이라는 변수를 선언한 후에 go함수에 int& result = a라고 하는 것도 괜찮은 방법일 것이라 생각하였지만 오답처리가 됩니다. dp배열의 값은 항상 0인데 굳이 dp를 사용해야 할까요?int a = 0, int& result = a; 를 해도 괜찮은 방법일거라 생각했지만 완전히 다른 값이 나옵니다. 혹시 제가 놓치고 있는 개념이 따로 있는지 궁금합니다.
-
해결됨김영한의 실전 자바 - 중급 2편
타입 이레이저 에서 나온 코드(EraserBox<T>) 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 타입 이레이저 를 복습하는 도중에 뭔가 이상한점을 발견해서 질문을 드립니다.영한님 강의에서 보면이런식으로 하셨는데여기서 의문이 2가지 생겼습니다.이때까지 영한님의 코드를 살펴보면제네릭 클래스를 만들고,타입 매개변수(private T value or t1;)를 만들었습니다.근데 여기에서는 바로 'T'를 사용 하셨습니다.그리고 2번째 메서드 에서return new T(); 라는 코드가 이해가 안 갑니다. 즉 첫 번째 질문은첫번째 메서드 에서 바로 'T'를 사용하신 이유가 궁금하고두번째 질문은return new T() 코드가 어떤 코드인지 설명 해주실수 있으신가요?답변 부탁 드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-L 코드 확인 부탁드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요~ 예제는 통과하는데 제출시 틀렸다고 나와서 질문드립니다. http://boj.kr/b1d4c42ec71748fdabeb464254740a90
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
재귀함수의 시간 복잡도
안녕하세요 큰돌님, 강의 잘 듣고 있습니다! 커뮤니티에서 나온 질문 중에 n이 이전에는 더하는 것의 개수까지 포함했었는데 이번 강의에서는 그냥 n으로 둬도 되냐는 질문이 있었습니다. 저도 같은 의문인 것 같아서 더 자세히 질문하고자 합니다!5-2. 문제로 연습하는 시간복잡도 -> 점화식 설명에서,등비수열의 합을 구하시면서 a(r^n-1)/r-1 => 1(2^log_2(n)+1 -1)/1 이런식으로 계산하여 등비수열의 합에서 n부분도 log로 표현하여 계산하셨었는데, 이번 강의인 7. 문제로 연습하는 시간복잡도 Q5의 경우 똑같이 등비수열의 합을 구하시면서a(r^n-1)/r-1 => 1(3^n-1)/3-1=>1/2 * (3^n-1) 로 n 부분은 그대로 n으로 두고 계산하신 것을 보고, 약간의 혼동이 온 것 같습니다. 언제는 트리의 높이로 구해야 하고, 언제는 n을 그대로 둬도 되는 건지 이런 부분에서 혼동이 오는 것 같아요.ㅠㅠn의 의미가 다른 것인지,제가 어디서 놓친 부분이 있는 것인지 짚어주시면 감사하겠습니다!! 항상 강의 잘 보고 있습니다! 감사합니다!
-
미해결김영한의 실전 자바 - 중급 2편
메모리 손실
[질문 내용]연결 리스트에서 메모리가 하나 손실되면 그 이후의 연결된 노드들은 어떻게 찾나요?
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
1강 연습문제 중 복습 문제 5번
해당 문제는 colab에서 코드를 적을 수 없도록 되어 있습니다. 확인 부탁드려요!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 맞왜틀 질문드립니다
http://boj.kr/2238929dcdd447bd938899d3c4e6c72f 도저히 반례를 찾을 수 없어서 질문 남겨봅니다 다 올바르게 작성한 것 같은데 반례가 찾아지질 않네요..ㅜ
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 타입 변환
이 코드에서 E tempElement = (E) elementData[i];이 과정이 필요한 이유를 잘 모르겠습니다. 실제로 저장하는 타입은 E 타입인데 만약 제가 Object tempElement = elementData[i];이렇게 하면 E 타입 = Object 타입 ( 부모는 자식이 될 수 있어도 자식은 부모가 될 수 없다 )이게 안되기 때문인가요 ? 추가 질문 : Object 배열 안에 예를 들어 String , int 형이 다 들어 있는데, 우리는 타입을 String 을 지정했을떄저렇게 E tempElement = (E) elementData[i]; 을 해줘야 런타임이 아닌 컴파일 시점에서 에러를 발견하여 사전에 에러를 차단할 수 있는 것인가요 ?
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 타입 관련 질문
@Override public int[] indexesOf(E element) { int[] arr = new int[size] ; int count = 0 ; for (int i = 0 ; i < size ; i++){ if( elementData[i].equals(element)){ arr[count++] = i ; } } return arr ; }여기에서 if 문을 if((E)elementData[i].equals(element) 로 하는게 (E) 를 넣지 않는 것보다 나을까요?그리고 누군가가 왜 낫냐고 물어보면 뭐라고 대답해줘야 하나요 ? 그리고 Objects.equals(elementData. element) equals 메서드와는 어떤 차이점이 있나요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O(#4949) 반례 질문 드립니다.
선생님, 안녕하세요, 표제의 문제 반례 질문 있어 문의 드립니다.http://boj.kr/5d827f3164d441c0aeded891ed97444b코드는 위와 같습니다. 강의에서 말씀주신 코드와 다른 부분은, 아래와 같이 string에 ')' 또는 ']'에 대한 처리 부분이 조금 다릅니다. [강의 코드] if(s[i] == ')') { if(stk.size() == 0 || stk.top() == '['){ check = false; break; }else{ stk.pop(); } [제가 짠 코드(오답)] else if(c == ')') { if((!stk.empty()) && (stk.top() == '(')) { stk.pop(); } else { flag = 1; break; } }이전 글자를 '('이냐 아니냐에 따라 true/false를 판단하는 방식 자체에는 큰 차이가 없어 보이는데, 현재로서는 적절한 반례를 떠올리지 못했습니다.관련되어 힌트를 주실 수 있다면 감사드리겠습니다. 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B 제가 개념을 잘 못 이해한걸까요?!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.L의 지점을 조합을 이용해서 시작과 끝점을 vector<vector<int>> landList에 저장해서 완전 탐색 식으로 위치를 바꿔가면서 최단거리를 만들어 봤는데 시간 초과가 났습니다. 250콤비네이션2이면 괜찮을거 같았는데 뭐가 문제일까요?? 2. 치킨배달에 풀이 아이디어를 이용해서 적용했는데 이런식으로 접근 방식도 맞을까요?? https://www.acmicpc.net/source/84507554#include <bits/stdc++.h> using namespace std; string s; int n,m,a[54][54],x,y,ex,ey; int visited[54][54]; vector<pair<int,int>>land; vector<vector<int>> landList; queue<pair<int,int>> q; vector<pair<int,int>>finish; const int dy[4] = {-1, 0, 1, 0}; const int dx[4] = {0, 1, 0, -1}; int ret = -1; void combi(int start, vector<int> v){ if(v.size() == 2){ landList.push_back(v); return; } for(int i = start + 1; i < land.size(); i++){ v.push_back(i); combi(i,v); v.pop_back(); } } int main(){ cin >> n >> m; for(int i =0; i <n;i++){ cin >> s; for(int j=0; j<m;j++){ if(s[j] == 'L'){ a[i][j] = 1; land.push_back({i,j}); } if(s[j] == 'W') a[i][j] = 0; } } vector<int> v; combi(-1,v); for(vector<int> lList : landList){ fill(&visited[0][0], &visited[0][0] + 54*54, 0); for(int ll :lList){ if(q.size() == 1){ finish.push_back({land[ll].first, land[ll].second}); }else{ visited[land[ll].first][land[ll].second] = 1; q.push({land[ll].first, land[ll].second}); } } while(q.size()){ tie(y,x) = q.front();q.pop(); for(int i = 0; i < 4; i++){ int ny = y + dy[i]; int nx = x + dx[i]; if(nx < 0 || ny < 0 || ny >= n || nx >= m || !a[ny][nx]) continue; if(visited[ny][nx]) continue; visited[ny][nx] = visited[y][x] + 1; if(visited[finish[0].first][finish[0].second]){ ret = max(ret, visited[finish[0].first][finish[0].second]); finish.clear(); break; } q.push({ny,nx}); } } } cout << ret+1 << "\n"; return 0; }
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
누적합 문제 3번 질문
텐트 세우기문제를 풀던 중, 가장 높은 높이를 만날때까지 왼쪽에서 오른쪽으로 진행하고, 이후에는 오른쪽에서 가장 높이를 만날때까지 역순으로 누적합 배열 2개를 만들어서 마지막에 더해서 해결하려고 했는데, 입력 예시랑 백준의 반례들 찾아서 집어넣어봤는데 모두 정상적으로 출력되는데, 제출하니 틀렸다고 나오네요. 하루종일 고민했는데 도저히 모르겠어서 질문 드립니다!#2304 미해결... TC = int(input()) x_list = [] y_list = [] graph = [0]*1001 for _ in range(TC): x, y = map(int, input().split()) graph[x] = y x_list.append(x) y_list.append(y) max_height = max(y_list) prefix = [0] check = 0 for i in range(1, max(x_list)): prefix.append(max(prefix[i-1], graph[i])) if prefix[i] == max_height: check = i break suffix = [0]*(max(x_list)) suffix[-1] = graph[max(x_list)] for i in range(max(x_list)-1, check, -1): if suffix[i] == max_height: break suffix[i-1] = (max(suffix[i], graph[i])) sum = 0 for i in range(len(prefix)): if prefix[i] != 0: sum += prefix[i] for j in range(len(suffix)): if suffix[j] != 0: sum += suffix[j] print(sum)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-D 문의드립니다
http://boj.kr/68954cd7572a49c190f202c6ba548867안녕하세요.저는 사각형이 있는 부분을 0으로 값을 할당하고 코드를 짰습니다.근데 테스트 케이스만 잘나오고 FAIL이 뜨는데 이유를 모르겠습니다ㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
히든퀘스트 푸는법
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.링크를 눌러서 들어갔습니다. 각 단계의 제목을 누르면 여러 문제가 있는데 거기서 한 개만 풀면 되는건가요? 아니면 다 푸는 건가요? 헷갈려서 질문해 봅니다. 항상 좋은 강의 감사합니당!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. vector<vector<int>> b 와 vector<pair<int,int>> b의 차이가 뭔가요!??!? 한참동안 vector<pair<int,int>>로만 생각했는데 vector<vector<int>> b 형태는 처음 보는거 같습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점페이지에서 계속 오답처리가 되는데 코드 확인해주실 수 있나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 주석처리 부분은 인강듣기 전 풀어본 코드이고, 주석 밑에는 인강을 보고 작성한 코드입니다.둘 다 결과값은 YES로 출력이 되는데 채점 홈페이지에서는 오답으로 처리되고 있어서 틀린부분이 어디인지 알고싶습니다..