묻고 답해요
154만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결김영한의 실전 자바 - 중급 2편
배열과 비교한 리스트의 이점 중에서 itemCount가 size++랑 비슷한거 아닌가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]배열과 비교한 리스트의 이점으로 itemCount와 같이 배열에 몇 개의 데이터가 추가 되었는지 추적하는 변수를 제거할 수 있다고 했는데, MyArrayList calss에서 add(E e) 메서드를 보면 size++; 부분이 동일한 역할이을 하고 있는 것이 아닌가요?
-
해결됨코딩테스트 [ ALL IN ONE ]
[Unique Paths] 완전탐색 / DP (후반부)
[Unique Paths] 완전탐색 / DP (후반부) 강의에서 13분에서 질문있습니다. 첫 번째 행과 첫 번째 열이 모두 왜 1인가요?만약 방향을 바꾸기 전까지 1이라고 친다면, 아래 그림 처럼 도착지에서 최대 방법이 28이 아니라 8이 되어야 하는거 아닌가요? 왜냐면 방향은 오른쪽 아래로만 이동이 가능하다고 해서 올라가거나 왼쪽은 이동이 불가능하잖아요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
반례 부탁드립니다 ㅜ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님.여러 반례를 다 넣어봤는데, 통과를 했습니다.그런데 제출하면 실패가 나오네요 ㅜ...아무리 머리를 굴려도 나올만한 반례는 다 찾은거 같은데.. 반례를 찾아주실 수 있나요?http://boj.kr/1962b2da6adc45cfb81e04b45e8ebe3a
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[8-J] 시간초과 문의드립니다.
첫번째 코드에서와 같이 int mi = gap 을 하면 시간초과가 나고 두번째 코드에서와 같이 int mi = gap + 1을 하면 시간초과가 나지 않습니다. gap은 평행이동 크기로 사용했으며 mi는 가장 왼쪽에 있는 값의 인덱스로 사용했습니다. 왜 나는건지 잘 모르겠어서 질문드립니다 . 감사합니다 시간초과가 나는 코드: https://www.acmicpc.net/source/89724803통과된 코드:https://www.acmicpc.net/source/89724860
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코테에 관한 질문 드립니다
안녕하세요 선생님! 코테 전반에 관해서 질문드립니다. Q1. 시간제한이 주어지지 않은 코테에서 풀이법을 고르는 방법추가적으로 프로그래머스 같은 환경에서 시험을 보게되면 시간제한, 스택메모리 제한이 명시되어있지 않은 경우가 많은데, 이럴때에도 그냥 "무식하게 풀이 시도 → 시간복잡도 1억,1000만 넘어가면 dp 고려" 이런 흐름으로 풀면 될지 궁금합니다! 프로그래머스에서 dfs로 풀면 시간복잡도가 50!*10* 50인 풀이가 통과가 되어서 기준이 헷갈립니다. ㅜㅜ dfs가 더 편리하고, dfs가 적절해보이는 문제(특정 목적을 이루기 위해 여러 옵션을 보며 서칭)라도 시간복잡도가 너무 크면 안전하게 bfs로 풀어야하는걸까요? 히든테케에는 시간제한을 걸어두는 경우도 있다고 들어서 더 헷갈립니다.. 그리고 제한이 명시되어있지 않은경우에는, 보통 최대 10배정도..?의 시간복잡도까지 허용해서 채점을 한다고 들었는데.. 너무 복잡하게 생각하지 않고 그냥 문제가 의도한것같은 방법으로 ("무식하게 풀이 시도 → 시간복잡도 1억,1000만 넘어가면 dp 고려" 의 기준으로) 풀면 될까요? Q2. 제한이 명시되지 않은 코테에서 재귀함수의 최대 depth를 몇까지 호출해도 될런지 궁금합니다..!보통 삼성같은 경우 스택메모리 1메가 제한이 있으니 함수 오버헤드를 고려할때 재귀호출 수만회까지 가능하지만, 함수 내부에서 4번 반복되는 루프 같은것이 있다면 호출 가능 횟수가 급격히 줄어들어 10회 내외까지가 안전한 재귀 호출 depth라고 생각합니다. 그런데 제한이 명시되지 않은 코테에서 재귀 호출 depth 까지는 신경쓰지 않아도 될까요?? Q3. main 함수가 주어지지 않는 프로그래머스 환경에서 코테를 볼때, ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);을 호출하는 방법인터넷에서 찾아보니main 함수 만들기전역에 호출하기이렇게 두가지 방법이 있는데 이 둘 중에 아무거나 써도 되는걸까요..?추가로 scanf , printf를 쓸때는, ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);를 쓰면 안된다고 하는데 맞는 이야기인가요? 감사합니다 ㅎㅎ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
&*의 의미
안녕하세요 . 10주 완성 알고리즘 교안 보는중입니다.&의 경우 변수의 메모리 주소를 저장할 때 사용* 의 경우 변수에 저장된 주소에 실제 어떤 값이 들어있는지 확인할때 사용 인거같은데,도대체 &*의 의미가 무엇인가요? 교안 103page입니다. python은 골드정도되어서 강의를 사서 들었는데, c++ 기본에 대한 설명이 너무 부족한거같네요.. 교안만 보면 베이스 지식을 요구하는 부분이 너무 많습니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
dp 계단오르기최소비용질문입니다.
경우의 수 문제에서는 memo[i]가 i번째 계단까지 도달하는 방법의 수를 저장했다.최소 비용 문제에서는 memo[i]가 i번째 계단까지 도달하는 총 비용을 저장했다.그렇다면 memo[i]가 이미 최소 비용을 저장하고 있다면, 왜 cost[i]까지 더해야 하나요?memo[i] = min(memo[i-1], memo[i-2]) + cost[i] 계단 오르기 경우의 수 문제가당신은 계단을 오르고 있습니다. n꼭대기에 도달하려면 단계가 필요합니다.매번 당신은 오르 1거나 2계단을 오를 수 있습니다. 정상까지 올라갈 수 있는 뚜렷한 방법은 몇 가지입니까?memo[i]=i가 3이라고 한다면 3까지 도달할 수 있는 방법을 저장하는것이고.계단오르기 최소비용문제에서는 memo[i]=i가 3이라고 한다면 3까지 도달할 수 있는 비용을 저장하는것이라 생각하는데요.아래는 최소 비용 문제 코드입니다class Solution(object): def minCostClimbingStairs(self, cost): n = len(cost) if n == 2: return min(cost) # 계단이 두 개라면, 더 싼 비용을 선택 # DP 배열 초기화 memo = {} memo[0] = cost[0] memo[1] = cost[1] # 점화식을 이용하여 최소 비용 계산 for i in range(2, n): memo[i] = min(memo[i-1], memo[i-2]) + cost[i] # 불필요한 비교 제거 # 마지막 계단을 오르지 않아도 되므로, 마지막 두 개 중 최소값 반환 return min(memo[n-1], memo[n-2])
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-N 네 방향 탐색, dp 적용 관련 질문드립니다.
안녕하세요! dfs랑 dp 구조에 대해 공부하려고 조금 다양한 시도를 해보다 궁금증이 생겨서 나름대로 스스로 이해를 해봤는데 제대로 이해한것인지 모르겠어서 질문 드립니다.제가 이해한 내용이 맞는지 확인 부탁드립니다! 궁금증은1) 네 방향으로 탐색하면 어떻게 되는지(순차탐색을 하는 이유)2) dp 를 적용할 수 는 없는지 이 두가지입니다. 1)번은 생각보다 구현자체가 복잡해서 아이디어만 정리하고 포기를 했고, 2)번에 대해 구현한 코드는 아래와 같습니다. https://www.acmicpc.net/source/89683214그리고 1,2번에 대해 제가 나름대로 이해한 방식은 다음과 같습니다. Q1. DFS 함수를 int형 반환값으로 구현하고 상하좌우 네 방향으로 탐색할 때, 단순 DFS 완전탐색과 DP 구조로는 해결이 어려운 이유는 무엇인가?A. 네방향 탐색 시 모든 완전탐색의 경우의 수를 통해 최소값을 찾아야 한다. 이때 "하나의 경우"는 여러 분기에서 "하나의 가지"를 의미한다. 그러나 DFS로 상하좌우 탐색을 하면, 여러 방향으로 분기되며 반환값이 생기고, 남은 1의 개수가 0이 되는 것을 기저조건으로 한 함수 구조에서 매개변수가 하나로 전달되지 않는다. (ex. 1이 5개 남았을 때 왼쪽으로 탐색하여 3개 완료, 오른쪽으로 이동하여 2개 완료하는 완전탐색이 가능하나 실제로 매개변수가 0이 되는 경우가 없음)이러한 방식으로 문제를 해결하려면 현재 탐색 방향 외의 방향에 존재할 수 있는 1이 있는 칸을 탐색하는 별도의 함수(a)가 필요하다. 이 함수를 현재 재귀함수의 네 방향 반복문이 종료된 후 호출되어야 완전한 탐색이 가능해진다. Q2. 시간복잡도를 줄이기 위해 DP 적용가능 여부. 첫 풀이 시도가 틀린 이유는?A. 이 문제에서 상태값은, "현재 y좌표, 현재 x좌표, 남은 1의 개수, 지금까지 붙여온 종이의 배치 구조" 가 필요하다. (이걸 다 저장한다면 부분 최적해가 보장되어 dp 사용가능하다고 이해했습니다.) 처음에는 순차탐색을 보장한다면 지금까지의 배치 구조를 저장하지 않아도 되지 않을까했다. 남은 색종이 종류별 개수는 별도 배열로 관리하기도 하고, 애초에 배치 구조를 저장하면 자동 결정되는 것이니 굳이 또 저장할 필요 없다. 감사합니다 ㅎㅎ
-
미해결김영한의 실전 자바 - 중급 2편
연결 리스트의 삭제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강사님 강의 항상 감사하게 보고있습니다연결리스트의 삭제에서 초기화를 시킨다고 했는데 참조값의 연결의 끊으면 사용되지 않으므로 gc대상이 되니 초기화는 안해도 되지 않나요?제가 놓친 부분이 있으면 말씀 부탁드리겠습니다 :)
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
3칸씩 건너뛸 수 있을 경우
안녕하세요, 3칸씩 건너뛸 수 있을 경우도 설명을 해주셨는데,이때 d[0]이 1이라는 게 잘 이해가 되지 않습니다.d[1] = 1, d[2] = 2, d[3] = 4 로 초기 셋팅을 해두고 4부터 루프를 돌아야 하는 게 아닌가요?감사합니다:)
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
4-9. 4주차 끝 & 숙제 설명 중 첫번째 농심 라면 공장 문제 질문입니다.
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 4-9 4주차 끝 & 숙제 설명어떤 알고리즘을 학습하고 계신가요? 첫번째 문제 (라면공장)여기까지 이해하신 내용은 무엇인가요? stock이라는 변수에, 날짜가 stock값보다 작은 date일 때의 supplies들 중 최대 값을 얻어서 다시 stock에 += 해주면서 최종적으로 stock이 k보다 커졌을 때 반복을 종료하고 결과값을 return하는 전반적인 알고리즘은 이해하였습니다. 2. 어려움을 겪는 부분어느 부분에서 막히셨나요? 정답이 4가 나오는 예시 문제코드의 어떤 로직이 이해가 안 되시나요? while stock <= k : 라는 반복문이 실행될 때 마다 max_heap을 왜 초기화시켜주지 않는 건가요? stock을 업데이트 하기 전에 남아있는 max_heap의 원소들과, stock을 업데이트 한 후에 새로이 추가된 max_heap의 원소들 중에 전자의 경우에서 max값이 나올 수 있기 때문인가요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요? 가장 바깥의 while문에서 벗어나지 못하는 문제현재 작성하신 코드를 공유해주세요def get_minimum_count_of_overseas_supply(stock, dates, supplies, k): # 풀어보세요! max_coverd_date = 0 result = 0 remained_stock = stock max_coverd_date += remained_stock while max_coverd_date < k: #k일을 버틸 수 있을 때까진 반복해야 함 can_supplied_qty_list = [] while dates: supply_date = dates[0] if supply_date <= max_coverd_date: dates.pop(0) can_supplied_qty_list.append(supplies.pop(0)*-1) else: break if can_supplied_qty_list: heapq.heapify(can_supplied_qty_list) max_supplied_qty = heapq.heappop(can_supplied_qty_list)*-1 max_coverd_date += max_supplied_qty result += 1 return result 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-5. 알고리즘과 친해지기 (2) 맨 마지막 시뮬레이션 관련 문의
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? => 1-5. 알고리즘과 친해지기 (2)어떤 알고리즘을 학습하고 계신가요? => 최빈값 구하기 2. 어려움을 겪는 부분어떤 개념이 헷갈리시나요?=> 안녕하세요~ 화면 캡쳐가 안돼서 말로 설명하자면, 강의 마지막 시뮬레이션 영상(25:58)에서 max_alphabet_index가 8이었다가, 13이었다가, 마지막에 14인 채로 끝나는 이유가 뭔가요?코드 상으로, if문 조건절에 등호를 붙이지 않았기 때문에(`if alphabet_occurrence > max_occurance:`), 동일한 최빈값 중에서는 알파벳 순서가 가장 앞에 위치한 알파벳이 max로 저장된다는 것은 이해했습니다! 그냥 시뮬레이션 영상 자체에 대한 질문이었어요! 근데 쓰다 보니 쓸 데 없는 질문인 것 같긴 하네요😅 그냥 코드 상으로 이해했다면 넘어가도 괜찮겠죠!??감사합니다!!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
큰돌님 4-H 질문 있습니다.
http://boj.kr/40f5fab72b2243a7840703f41c546807 강의를 듣기 전에 먼저 풀어보았는데요 제 코드같은 경우 그래프탐색을 3번이나 반복하고 강의처럼 DFS를 쓰지 않았습니다. 푸는데 오랜 시간이 걸린것은 물론이고 큰돌님 코드가 너무 깔끔해서 저는 어느 부분에서 최적화를 할 수 있었는지 궁금합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
(3-8 해쉬-2) hash table 시간복잡도
3-8 해쉬-2 강의 수강 중 출석체크 문제에서2중 for문, 정렬, hash table 3가지 방식에 대한 시간복잡도를 설명해주셨는데hash table 시간복잡도에서 값 등록 시 최선이 1 최악이 N인데 최선을 고려한다. 라고 하셨는데 보통 어떤 입력이 들어올지 모르니 최악을 고려해야하는거 아닌가요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
03_12_get_max_discount_price를 pop()으로 구현했어요
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요def get_max_discounted_price(prices, coupons): if prices: prices.sort() if coupons: coupons.sort() discounted_prices = [] while prices and coupons: max_price = prices.pop() max_coupon = coupons.pop() discounted_prices.append(max_price * (100 - max_coupon) / 100) total_sum_prices = sum(discounted_prices) + sum(prices) return total_sum_prices 사실상 같은코드긴 한데, 혹시나해서 검증받고싶어서..
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
C언어로 코드를 짜면 채점 시에 한 문제 빼고 시간 초과가 발생하는데 해결하는 방법이 있을까요?
#include <stdio.h> #include <stdlib.h> int main(){ int n, res=0; scanf("%d", &n); int* arr = (int*)malloc(n+1); int* dy = (int*)malloc(n+1); for(int i=1; i<=n; i++){ scanf("%d", &arr[i]); } dy[1] = 1; for(int i=2; i<=n; i++){ int max=0; for(int j=i-1; j>=1; j--){ if(arr[j]<arr[i] && dy[j]>max){ max = dy[j]; } } dy[i] = max + 1; if(dy[i]>res){ res = dy[i]; } } printf("%d\n", res); return 0; }이런 식으로 C로 코드를 짰습니다.시간 초과 문제를 해결할 수 있는 방법이 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
조합 함수의 인자인 벡터에 &을 붙이지 않아도 괜찮나요?
안녕하세요 큰돌님, 친구와 이야기하다가 궁금한 것이 생겨 질문 남깁니다. 영상에서 combi의 인자로 vector<int> b를 두셨는데, vector<int> &b로 하지 않아도 문제는 없을까요? 큰돌님 풀이가 익히기 쉬워 그렇게 하고 싶은데 메모리문제가 생길 수 있다고 이야기를 들어서요.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
회의실 배정 문제조건
문제조건에 동시간대에 진행되는 회의는 없다는 전제가 따로 없어서 혼동스러웠는데요..그런 케이스는 없는 경우에만 강의 풀이가 적용되는게 맞을까요? 31 31 11 1 이런경우 반례이지 않나 싶습니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
[질문]: [섹션4] -> [2중 연결 리스트로 전환] -> [21:30]
강의 잘 보고있습니다! 선생님. 다름이 아니라 ReleaseList()함수에서 어차피 이제 pTmp는 NULL인 상황을 고려할 필요가 없을텐데(테일 노드 역시 동적 할당이 아니므로), 조건식에 NULL을 고려하는 코드가 있어서 의문입니다. 제가 또 다른 경우의 수를 자각하고 있지 못하는 걸까요? 아니면 그냥 혹시나 NULL일 상황을 대비해서 남겨두신 코드인가요?이런식으로 조건식을 바꾸더라도 프로그램은 정상 구동됩니다.
-
미해결김영한의 실전 자바 - 중급 2편
섹션4 강의 문의 입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강사님 강의 항상 잘 보고있습니다 🙂이번 강의에서 ArrayList 클래스를 직접 사용하지 않고, 별도로 클래스를 구현하여 기능을 설명해 주셨는데요.이전 강의에서는 직접 구현한 뒤 해당 클래스를 함께 활용하셨던 것으로 기억하는데,이번에는 ArrayList를 전혀 사용하지 않고 직접 구현만 하신 점이 궁금해서 문의드립니다.혹시 ArrayList를 사용하지 않아도 충분히 개념을 설명할 수 있어서 그렇게 진행하신 걸까요?아니면 별도로 구현하는 것이 ArrayList의 내부 구조를 더 잘 이해하는 데 도움이 되기 때문일까요? 강의 정말 유익하게 보고 있으며, 많은 걸 배워가고 있습니다!제 질문이 혹시 의도를 제대로 파악하지 못한 것이라면 너그럽게 이해해 주시면 감사하겠습니다. 😊
주간 인기글
순위 정보를
불러오고 있어요