묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 와일드카드질문
오랜만에 햇갈려서 제네릭 다시볼려고 영한님 찾아왔습니다.제네릭메서드랑 와일드카드 언제쓸지 구분할때좀더 명확한 타입이 필요할때 제네릭 타입을 쓰면 될까요 ?좀 햇갈리네요 이부분이강의 예시코드를 보면 Dog dog = WildCardEx.printAndReturnGeneric(dogBox); //Dog 타입 Animal animal = WildCardEx.printAndReturnWildcard(dogBox); // 부모 타입 (Animal ) 이렇게 나와서 특별한 형 변환이 필요없을때 와일드 카드를 쓴다고 생각하면 맞는생각일까요 ?
-
미해결김영한의 실전 자바 - 중급 2편
안녕하세요 질문있습니다.
직접 구현하는 연결 리스트1 강의중 영상과 자료에는 문제가 없는 것 같은데 저의 IDE에서는 캐스팅을 요청하길래 코드를 보니 참조값이 Object인데 반환 값은 Node라 상관이 없는 것을 알고 있지만다운캐스팅을 하는 것이 올바른 것인지 문의드립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
전체적인 공부방법에 대한 질문입니다.
안녕하세요 선생님 강의 열심히 듣고 있는 학생입니다. 제가 듣다 보면 문제를 보고 1시간 정도를 고민해도 풀 수가 없어서 결국 강의 풀이를 보며 이해하는 문제들이 많은데 이런식으로 공부해도 실력이 늘 수 있을지가 의문이고 고민입니다... 혼자 생각하고 풀지 못하고 결국 정답과 풀이를 보며 따라하는 상황이다 보니 혼자 힘으로는 풀지 못하는 문제만 늘어간다는 느낌을 받습니다. 이런식으로 공부해도 괜찮은 걸까요..?
-
해결됨김영한의 실전 자바 - 중급 2편
컬렉션프레임워크 문제 풀이2 - 문제7 Cart클래스 add() 및 minus() 코드 방식에 대하여서 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.문제 풀이7번 장바구니를 만들고 나서, 영상 및 pdf 랑 비교해보니, Cart 클래스의 add() 및 minus() 가 비슷하긴 한데, 다릅니다.(정답은 잘 나옵니다.) 이럴 때에는 영한님의 코드 방식을 익히고, 영한님 코드를 쓰는게 나을까요?아니면 그대로 저의 코드로 하는 게 나을까요?(일단 코드도 올릴게요.)추가1 이렇게 코드를 올리는 게 자만 인가요? 다른 분들은 코드를 올리지 않고 잘 진행하는데, 주구장창 식으로 올리는 듯해서요.(저번 글에 답변 해주신 David 님 말이 생각이 나서요.) 답변 부탁 드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A
안녕하세요 선생님. 선생님과 거의 비슷한 방법으로 풀었는데 cmp부분에서 논리적 오류로 틀린것 같습니다. 혹시 어느 부분때문인지 알려주시면 감사하겠습니다.http://boj.kr/904583c9595b4c1192fc5d9496c76678
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-4 2번째풀이 관련
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-4 알고리즘 친해지기def find_max_num(array): max_num = 0 for i in range (len(array)): if array[i] > max_num : max_num = array[i] return max_num print("정답 = 6 / 현재 풀이 값 = ", find_max_num([3, 5, 6, 1, 2, 4])) print("정답 = 6 / 현재 풀이 값 = ", find_max_num([6, 6, 6])) print("정답 = 1888 / 현재 풀이 값 = ", find_max_num([6, 9, 2, 7, 1888])) 저는 다음과 같이 풀어봤는데 선생님께서 푸신것과 최대값을 갱신해서 구한다는점이 같았는데 gpt에게 물어보니 다음풀이는 배열의 인덱스를 순회하는 방식이고 강의 풀이는 배열의 값을 순회하는 방식이라고 하는데둘방식이 차이가 있는지? 다르다면 어떠한 경우에 값을 순회하고 ,인덱스를 순회하는지 궁금합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
왜 오류 인가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.package PR; import java.util.*; public class 보이는학생 { public int solution(int n, int[] arr){ int answer = 1; for(int i=0; i<arr.length-1; i++){ if( arr[i] < arr[i+1] ){ answer++; } } return answer; } public static void main(String[] args) { Algorithm.보이는학생 t = new Algorithm.보이는학생(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[] arr = new int[n]; for(int i=0; i<n; i++){ arr[i] = kb.nextInt(); } System.out.println(t.solution(n, arr)); } } 이코드는 어디 부분에서 로직이 오류인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문드립니다.
2-S 백준1325 효율적인 해킹 문제에서시간복잡도가 10억인데,시간복잡도가 10억이어도 괜찮나요?
-
미해결[EduAtoZ] Python 활용&Cos Pro 2급
안녕하세요 혹시 수강연장 가능할까요?
내일 만료가 된다고 하여서 혹시나 하고 질문을 남겨봅니다 수강 연장이 가능하다고 한다면 1개월 정도 연장이 가능할까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 맞왜틀 질문있습니다!
http://boj.kr/a166d070b8e646418f096a93c5b4286a강의를 보기 전 dfs를 활용해서 0을 쭉 탐사하는데 1로 막혔을 때 그 1의 좌표를 벡터에 저장하여 탐색 후 지우고 다시 탐색하는 방식을 반복한 횟수를 구해서 풀어봤는데 왜 틀린 지를 모르겠습니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-I 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님 문제에서 scanf와 printf로 사용하셨는데 cin,cout를 사용안한 이유가 있으신가요??
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
[Python] 백준 1090번 문제
n = int(input()) list = [list(map(int, input().split())) for _ in range(n)] fi_answer = [int(1e6)] * n #초기 배열 생성 x_list = [] y_list = [] for x, y in list: #후보군 리스트 생성 x_list.append(x) y_list.append(y) for x_pnt in x_list: for y_pnt in y_list: answer = [] for x, y in list: #입력 x, y #어느 한 점에서 입력위치로부터의 거리 최솟값 계산 answer.append(abs(x_pnt-x) + abs(y_pnt-y)) # ex) [1,4,6,7], [0,2,3,4] answer.sort() distance_cost = 0 #k번째 마다 이동 비용의 최소값 계산 for i in range(n): distance_cost += answer[i] #1~k if fi_answer[i] > distance_cost: fi_answer[i] = distance_cost print(*fi_answer)안녕하세요! 백준 1090번 문제에 대한 질문입니다. 다음과 같이 짠 코드에서 IDE에서는 결과가 잘 나오지만, 백준 제출했을 경우 틀렸습니다만 나옵니다. 아무리 수정하고 찾아봐도 이유를 잘 모르겠어서 문의드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다.
이 문제와 관련된 질문은 아니지만 지금 5-H 풀 차례라 여기다 남깁니다..!https://www.acmicpc.net/problem/1009이 문제를http://boj.kr/44be1cd3cb714dc9bbcb94e1d166758c이렇게 풀었는데요문제에서 테스트갯수인 T의 최댓값을 안알려주는데 이럴 경우에는 무식하게 풀어도 되는지 어떻게 아나요..?b가 최대 백만번 반복하는데 만약 T의 값이 1000을 넘어 버리면 1억번의 연산이 넘어버리는데 T의 값이 없어서 무식하게 풀어도 되는지 판단이 불가합니다. 그럴 땐 어떻게 생각을 해야되는지 궁금합니다.T는 빼고 생각해도 되는걸까요?
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
대기업 코테 난이도
갑자기 든 생각입니다만..백준 기준으로 골드4 정도 되면 무난하다고 하셨는데신입 기준인가요? 경력직 기준인가요?무지몽매한 질문 읽어주셔서 감사합니다;
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-G 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.문제 자체를 이해를 못했네요ㅜㅜ2. 만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다면, 위에서 자른 막대의 절반 중 하나를 버린다. 2번 조건에서 위에서 자른 막대의 절반 중 하나를 버린다는 뜻이64 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1 에서 16 8을 더했을때 23을 넘어가니까 위에서 자른 절반 중 하나를 버리면 16을 버리는게 아닌가요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
7576번 풀이 코드 관련 질문
안녕하세요 선생님. 7576번 토마토 문제를 풀기 위해 코드를 짜서 제출했는데 자꾸 틀렸다고 처리가 되어서 어디가 문제인지 궁금하여 질문드리려 합니다. time matrix 대신에 visit matrix를 쓰는거 말고는 예시답안과 거의 일치하는것 같은데 어디가 문제일까요?import sys from collections import deque def bfs(cands): global data, N, M, min_dist, dx, dy visit = [[False] * M for _ in range(N)] q = deque() for (i,j) in cands: q.append([i,j,0]) visit[i][j] = True while q: x,y,dep = q.popleft() min_dist[x][y] = min(min_dist[x][y], dep) for di, dj in zip(dx,dy): ni = x + di nj = y + dj if (0<= ni < N) and (0<=nj<M) and (not visit[ni][nj]) and (data[ni][nj] == 0): q.append([ni,nj,dep+1]) visit[ni][nj] = True dx = [0,1,0,-1] dy = [1,0,-1,0] M, N = map(int, input().split()) data = [] for _ in range(N): data.append(list(map(int, input().split()))) min_dist = [[1e6]*M for _ in range(N)] cands = [] for i in range(N): for j in range(M): if data[i][j] == 1: cands.append((i,j)) if data[i][j] == -1: min_dist[i][j] = -1 bfs(cands) val = max(max(min_dist)) if val == 1e6: print(-1) else: print(val)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4 - J 맞왜틀 질문있습니다.
처음에는 감조차 못잡다가, 가로세로 힌트를 듣고 어떻게 구현을 하긴 했습니다.그런데 Test Case는 전부 맞는데 제출을 했을때 0퍼에서 틀려버립니다.이유를 모르겠습니다...http://boj.kr/edf18c4b49134e13b67c75f324ea9dc9감사합니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
헤드노드에 관해..
계속 그리면서 이해하다가 딜레마에 빠져 질문드립니다 ..새 노드 추가할때의 그림을 그려보며 이해중이였는데,else{pNewNode->pNext = g_pHeadNode;g_pHeadNode = pNewNode;}이 코드는 이미 헤드노드가 가리키는 '원래노드'가 따로 있는건데그렇다면 pNewNode의 pNext엔 헤드노드 주소값을 넣으면pNewNode는 AddNewNode에서 초기화된 각자의 멤버값을 가지면서 pNext를 따라가면 헤드노드가 나오게 되고, 그 헤드노드의 pNext를 따라가면 '원래노드'가 나오게 되는데그 상태로 g_pHeadNode = pNewNode; 를 수행하게 되면 헤드노드에 pNewNode값이 오버라이트되게 되는건데 그럼 이 상황에선기존헤드노드에 뉴노드멤버들의 값들과 pNext엔 헤드노드의 주소값, 이걸 따라가면 뉴노드멤버들의 값들과 pNext엔 헤드노드가 가리켰던 '원래노드'의 주소값, 이걸 따라가면 '원래노드'멤버들의 값과 pNext값 . . . 이렇게 생각하면 되는건가요 ?그럼 결국엔 이 상황에선 g_pHeadNode와 pNewNode는 pNext를 제외한 모든 멤버변수들이 같은값을 가지고 있는 상황인거라고 해석하면 되는건가요 ? ( 뭔가 3개의 노드가 다 다른 멤버변수값을 가져야할것만 같은데, 2개의 노드가 같은 멤버변수값을 가지는거같아 이상하여 이해한게 맞나, 아니면 개념을 잘못잡은건가 싶어 질문드립니다 )질문이 길어져 죄송합니다 . . .
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-F 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 비트마스킹의 허우적 거리고 있습니다. 예시를 들고 계신 부분(영상 3:19초)에서 abc 를 비트마스킹한 값을 배열에 저장해뒀다가 완전 탐색하면서 비트마스킹(7) == 경우의 수?(7)이 같으면 이것은 가능한 경우의 수라는 뜻인가요?? 1주차 2주차 3주차는 시간이 지나도 다르게 풀기도하고 하는데 이 비트마스킹은 벽을 느끼고 있습니다. 어찌해야 될가 답답하네요 ㅠㅠ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드리뷰 부탁드립니다.
Map과 for문으로 풀이를 했는데, 코드리뷰 부탁드립니다. function solution(arr) { let sumSet = new Map(); for (let i = 0; i < arr.length; i++) { let sum = 0; for (let j = 0; j < String(arr[i]).length; j++) { sum += Number(String(arr[i])[j]); } sumSet.set(arr[i], sum); } let maxVal = 0; let maxKey = 0; for (const [key, value] of sumSet) { if (value > maxVal) { maxKey = key; maxVal = value; } else if (value === maxVal) { if (key > maxKey) { maxKey = key; maxVal = value; } } } return maxVal; } console.log(solution([128, 460, 603, 40, 521, 137, 123]));