묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
트리 - 목표문제 11725 메모리 초과
안녕하세요트리 목표 문제 11725 예제를 백준에서 돌렸을때 메모리 초과가 발생합니다. 혹시 메모리 초과가 나지 않게 푸는 방법은 없을까요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
2-6 get_linked_list_sum 형변환으로 풀었는데
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 2-6어떤 알고리즘을 학습하고 계신가요? linked_list여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요? 막힌건아니구..코드의 어떤 로직이 이해가 안 되시나요? 이해도되는데어떤 개념이 헷갈리시나요? 내 풀이는 정석이 아닌가싶어서 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요? 생각을 많이함에러가 발생했다면 어떤 에러인가요? 에러 아님현재 작성하신 코드를 공유해주세요def get_linked_list_sum(linked_list_1, linked_list_2): concat_value_1 = "" concat_value_2 = "" cur_1 = linked_list_1.head cur_2 = linked_list_2.head while cur_1 is not None: concat_value_1 += str(cur_1.data) cur_1 = cur_1.next while cur_2 is not None: concat_value_2 += str(cur_2.data) cur_2 = cur_2.next return int(concat_value_1) + int(concat_value_2)강사님처럼 10을 곱해주는게아니라str로 형변환해서 그냥 붙힌다음에다시 int로 파싱해서 리턴했는데...이건 너무 야매풀이일까요..ㅠ 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
MyListEx 질문드립니다.
MyListEx 생성자에서 UserData를 매개변수로 받도록 설계한 이유에 대해 궁금합니다.MyNode라는 추상 자료형(ADT)을 정의해 두셨는데, 생성자에서 특정 구현체인 UserData를 직접 받는 방식이 추상화의 장점을 제한할 수 있다고 생각합니다.또한, onRemoveNode 메서드에서도 UserData 타입으로 변환하지 않고 MyNode에 정의된 메서드만으로도 충분히 기능 구현이 가능해 보이는데, 혹시 MyListEx는 UserData를 위한 전용 자료구조로 설계된 것인가요?그렇지 않다면, MyNode를 기반으로 유연성을 유지하도록 설계하는 것이 더 적합하지 않을까 하는 생각이 들어 질문드립니다.
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
part3 강의 개강
제 기억에는 작년 말에는 part3강의가 나온다고 하셨는데,언제 쯤 강의 오픈 예정이신가요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
코드 피드백 부탁드립니다,
아래의 코드는 강사님의 최종 작성 코드를 확인 전, 제가 생각해서 작성한 코드입니다.def find_max_occurred_alphabet(string):alphabet_occurrence_array = [0] * 26for char in string:if char.isalpha():arr_index = ord(char) - ord('a')alphabet_occurrence_array[arr_index] += 1max_num = alphabet_occurrence_array[0]max_alphabet_index = -1max_occurred_alphabet = 0for number in alphabet_occurrence_array:max_alphabet_index +=1if max_num < number:max_num = numbermax_occurred_alphabet = max_alphabet_index + ord('a')return chr(max_occurred_alphabet) 강사님께서 작성하신 코드와 비교해보니, 확실히 강사님께서 작성하신 코드가 더 심플해보였습니다.1-6 강의를 듣고 확인해보니, 시간복잡도 측면에서는 강사님께서 작성주신 코드와 차이가 없음을 확인하였습니다.제 구현 방식에 대해 앞으로 코드를 작성 시, 어떻게 풀이 방향을 잡고 구현을 해야하는지, 현재 코드에서의 개선점에 대해 피드백 주시면 감사드리겠습니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
디스코드 접근할 수 없습니다.
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
사전문제 관련 질문
안녕하세요 이제 막 강의 듣기 시작한 취준생 입니다. 사전 문제 관련 수업 진행 방식에 대해서 질문이 있어서 글 남겼어요.섹션1 '이 강의를 극대화 하는법' 에서 사전 문제 먼저 풀고 -> 강의를 들으라고 하셨는데, 섹션2 시작할 때 사전문제 링크에 들어가보니까 1강부터 8강까지 총 8개의 파일이 있더라구요.그래서 궁금한 것이 생겼습니다.'1강_0.배경지식 퀴즈_촬영용' 이거를 혼자 풀어보고 -> 배열 만들기를 들어야 되는 건가요? 아니면 사전 문제에 있는 모든 파일을 풀어보고 강의를 듣는 건가요?? 파일명에 1강, 2강, 3강의 의미는 뭔가요?파일중에 '1강0.배경지식 퀴즈_촬영용' << 이건 뭐죠..? 2강_0.은 문제 -> 답이 구분되어 있어 퀴즈 형식이구나 싶은데 1강.0에 있는건 바로 답이 있어서 무슨 용도인지 모르겠어서요.. 촬영용이라고 적혀있는 것도 그렇고...질문 읽어주셔서 감사합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-5 알고리즘과 친해지기 (2)
1. 현재 학습 진도현재 1-5 알고리즘과 친해지기 강의 중 가장 많은 알파벳 출력하는 문제를 풀고 있습니다. 2. 어려움을 겪는 부분강사님께서 말씀해주신 부분은 가장 많이 사용된 알파벳을 찾는 함수를 구현하는 것인데 강사님께서 예제로 주신 string 값들이 모두 하나 이상의 최댓값을 가지고 있습니다. print("정답 = i 현재 풀이 값 =", result("hello my name is dingcodingco")) print("정답 = e 현재 풀이 값 =", result("we love algorithm")) print("정답 = b 현재 풀이 값 =", result("best of best youtube"))현재 풀이 값 = o,n,i 현재 풀이 값 = e,l,o현재 풀이 값 = b,e,t 강사님께서는 가장 많이 사용된 알파벳 중 제일 앞에 있는 알파벳을 출력하신 것 같습니다. 제가 1-6강을 아직 들어보지 않아서 이 부분에 대한 설명을 나중에 해주시는지 확인해 보지 않았지만 , 아무 설명도 없이 이렇게만 넘어간다면 저와 같이 헷갈리시는 분들이 많을 것 같아 질문 드립니다 🙂
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
식 오류 있습니다.
안녕하세요. 강의를 듣고 있는 학생입니다.현재 1분 25초에 나오는 'O(logN)알고리즘을 선택한다면?' 부분의 식에서 7/log_10(2) 이 1/log_10(2)로 수정되어야 할 것 같습니다(log의 밑을 여기엔 수식으로 표현하지 못하여 log_10(10이 밑)처럼 표현했습니다.). 즉 7이 1이 되어야 합니다.감사합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
섹션4. 3주차 Stack 백준 2493
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 섹션4. 3주차 Stack 3-5어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분딩코님교재 스택부분 예제에 있는 백준 2493 , https://www.acmicpc.net/problem/2493선생님이 알려준 내용대로 이해하고 제출했으나 3개모두 시간초과가 뜹니다. pypy로 바꿔서도 해봣네용스택 학습이 우선적이기에 의도했다고 하더라도(제가 잘못 한걸 수도 있습니다!!!1)시간초과가 뜨지않길 원합니다, 어떻게 코드를 수정해야할까요 3. 시도해보신 내용 에러가 발생했다면 어떤 에러인가요? 시간초과현재 작성하신 코드를 공유해주세요 첫번째콛, -내가 작성n=int(input()) # 한 줄로 입력 받기 data = input().strip() numbers = list(map(int, data.split())) result=[] for i in range(n-1,-1,-1): cur_idx=i for j in range(i-1,-1,-1): if numbers[i]<numbers[j]: result.append(j+1) break elif j==0: result.append(0) result.append(0) while result: print(result.pop(),end=" ") 나머지코드- 딩코님의 작성n=int(input()) # 한 줄로 입력 받기 data = input().strip() top_heights= list(map(int, data.split())) def get_receiver_top_orders(heights): answer = [0] * len(heights) while heights: height = heights.pop() for idx in range(len(heights) - 1, -1, -1): if height <= heights[idx]: answer[len(heights)] = idx + 1 break return answer print(get_receiver_top_orders(top_heights)) # [0, 0, 2, 2, 4] 가 반환되어야 한다! n=int(input()) # 한 줄로 입력 받기 data = input().strip() top_heights= list(map(int, data.split())) def get_receiver_top_orders(heights): answer = [0] * len(heights) while heights: height = heights.pop() for idx in range(len(heights) - 1, -1, -1): if height <= heights[idx]: answer[len(heights)] = idx + 1 break return answer print(get_receiver_top_orders(top_heights)) # [0, 0, 2, 2, 4] 가 반환되어야 한다! 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
문자열 비교 강좌에서 문자열 선언 방법 간에 hashCode() 값 관련한 질문입니다.
해당 강좌에서 String str1 = "java"로 선언한 객체와 String str2 = new String("java")로 선언한 객체는,다른 메모리 공간에 저장된다고 말씀하셨는데요.hashCode()로 확인한 결과 동일한 값이 출력되어 문의드립니다.String str1 = "java"; String str2 = "java"; String str3 = new String("java"); String str4 = new String("java");위 코드처럼 선언한 후 hashCode()로 출력하면 str1 ~ str4까지 동일한 값이 출력됩니다.System.out.println("str1 : str2 -> " + str1.hashCode() + " : " + str2.hashCode()); System.out.println("str3 : str4 -> " + str3.hashCode() + " : " + str4.hashCode()); 헌데 동일성 확인을 하면 str1과 str2 는 true 이고,str3과 str4는 false가 출력되고요.물론 str1과 str3도 false가 출력됩니다.이걸 어떻게 해석해야 하는지 문의 드립니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
병합정렬 문제에서 조건이 하나 빠진 것 같습니다
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 3-4 2. 어려움을 겪는 부분병합 정렬 구현해볼 때 두 배열의 비교하는 값이 같은 경우에서의 처리가 안되어 있는 것 같습니다. 3. 시도해보신 내용while first_array_index < len(array1) and second_array_index < len(array2): if array1[first_array_index] < array2[second_array_index]: result_array.append(array1[first_array_index]) first_array_index += 1 elif array1[first_array_index] > array2[second_array_index]: result_array.append(array2[second_array_index]) second_array_index += 1 else: result_array.append(array1[first_array_index]) result_array.append(array2[second_array_index]) first_array_index += 1 second_array_index += 1 동일한 값을 비교할 경우 두 값을 모두 result 배열에 넣어줘야 하니까 else의 코드도 있어야 하지 않을까 생각이 들어 글 남깁니다! 좋은 강의 감사드립니다!
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
상속과 오지랖의 콜라보 예제에서 clone() 메서드에 대한 문의드립니다.
해당 예제(22:17)의 setString(String param)에서string 필드 변수의 값을 수정하고자 아래 구문을 사용하셨는데요,string = param.getBytes().clone(); clone() 메서드를 사용하지 않아도(아래 구문) string 필드 변수의 수정이 가능한데, clone() 메서드를 사용한 이유를 알 수 있을까요?string = param.getBytes(); 해당 의문에 대해서 얇은/깊은 복사와 관련이 있는지 확인해보기 위해 디버깅을 해본 결과,두 변수는 값은 같으나, 다른 메모리 위치를 갖는 것으로 확인을 했습니다.-> clone() 메서드가 있는 코드/없는 코드 모두 위와 동일하게 동작하는 것을 확인했습니다.그래서 다른 이유로 clone() 메서드를 사용하신 거 같은데, 어떤 이유인지 문의 드립니다.
-
미해결개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기
강의 업로드 오류
2-1, 2-2 강의 업로드 된 내용이 1-1,1-2와 동일해요
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
보이지 않는 임시 객체의 자막 수정 요청
수업 내용을 스크립트로 볼 수 있어서 매우 큰 도움을 받고 있습니다.듣는 도중 자잘한 오타는 건의를 하는 편인데, 이번 건은 3줄이 모두 이상한 말로 등록되어 있어서 인프런측에 제보합니다.7:33, 7:36, 7:42 의 자막이 강사님 말과는 전혀 다른 엉뚱한 자막이 삽입되어 있습니다.확인 후 수정 요청합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
멜론 베스트 앨범 알고리즘 시각화 궁금중
1. 현재 학습 진도 현재 3주차 숙제 부분에서 3번째 문제인 멜론 베스트 앨범 알고리즘을 공부하고 있습니다. 2. 어려움을 겪는 부분이해가 되지 않는 부분이 있어서, 문의 드립니다.3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록한다.해당 문제에 보면 , 위와 같은 조건이 존재하는데 , 제가 강의를 두 번이나 돌려보면서 듣고 있는데 ,강의 하신 내용에, 재생횟수가 같은 노래에 대해서는 처리하신 코드가 안 보이는데, 보내주신 코드를 프로그래머스에 돌려봐도 정상적인 답안이라고 나오더라고요.그래서, 해당 부분에 대한 설명이 있으면 더 좋을 듯 하고 궁금해서 질문드립니다.제가 생각한 부분은 이미for 문을 돌 때, 인덱스 순서대로 되어 있으므로, 재생횟수로 정렬을 해도 인덱스가 낮은 것이 무조건 앞으로 오게 된다. 이렇게 생각했는 데 맞는 것인지 궁금합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
해시 충돌에서 링크드 리스트말고 해시테이블을 이용해서 구현하지 않는 이유가 있을까요?
1. 현재 학습 진도3-7강 해시 -1 2. 어려움을 겪는 부분이해한 내용 : 해시 테이블에서 해시충돌이 일어날 경우, 링크드 리스트를 이용하는 부분과 그 구현까지는 이해하였습니다!질문 : 해시테이블 내부에서 링크드리스트가 아니라 해시테이블을 또 쓰면 안되나요? 그러면 시간 복잡도가 O(1)*O(1) 이여서 훨씬 빠를 거 같은데, 왜 이렇게 안 구혔했는 지 궁금합니다. (저는 링크드리스트가 O(1) * O(n)으로 더 느리다 생각했습니다.)
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
3주차 병합정렬 해결방법
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊 merge 함수에 return이 빠진거같습니다!
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
해상도 720p 라 글자가 흐릿하게 보입니다.
밝은 화면에서 폰트크기 마저 작은 편이라해상도는 1080p 는 나와야 코드가 잘 보일 거 같습니다.일부 영상은 1080p가 나오고 그외 영상들은 720p 까지만 나옵니다. 수강평으로 남길까하다 빠른 피드백 남기고자 질문으로 남깁니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
2019-라인 나잡아봐라 문제
이 문제를 풀다가 의문이 들었는데요 visitied를 사용할 필요가 있었는지 의문이 듭니다. public static int catch_me(int cony_loc, int brown_loc){ int time = 0; Queue<int[]> q = new LinkedList<>(); //map<위치, 시간> q.add(new int[]{brown_loc,0}); Map<Integer, Boolean>[] visitied = new HashMap[200010]; for (int i = 0; i < visitied.length; i++) { visitied[i] = new HashMap<>(); } while(cony_loc <= 200000){ cony_loc += time; if(visitied[cony_loc].containsKey(time)){ return time; } for(int i=0, initialSize = q.size(); i< initialSize; i++){ int[] info = q.poll(); int currentPosition = info[0]; int currentTime = info[1]; int newTime = currentTime + 1; int newPosition ; newPosition = currentPosition - 1; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } newPosition = currentPosition + 1; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } newPosition = currentPosition * 2; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } } time++; } return -1; }딩코딩코님의 파이썬 풀이를 자바로 변환해봤을 때 이런식으로 코드가 작성이 되었는데 보통 dfs나 bfs에서 visitied는 재방문을 방지하려고 사용하는 것 같은데 이 코드상에는 재방문을 막으려는 부분이 없어보여서요 bfs 내에서 다음 초에 해당하는 위치를 q에 모두 넣게되는데 그럼 비교를 할 때 코니의 다음 시간과 브라운의 다음 시간은 반복문을 돌면서 어차피 조건문에서 체크를 하게되는데 visitied에 저장할 필요가 있나라는 생각이 들더라구요. 그래서 public static int catchMe(int cony, int brown) { int time = 0; //브라운의 next 위치를 저장할 queue 사용 Queue<int[]> q = new LinkedList<>(); q.offer(new int[]{brown, time}); while(cony <= 200_000){ cony += time; //bfs //q.size가 반복문내에서 동적으로 변경이 되므로 고정값을 구해놔야함. for(int i = 0, size = q.size() ; i < size; i++){ //q에 넣은 값을 poll int[] posTime = q.poll(); int currPos = posTime[0]; int currTime = posTime[1]; //같은 시간의 코니와 브라운의 위치를 비교하니까 visited를 사용할 필요없어보이데..? if(cony == currPos){ return time; } //다음 초에 브라운의 위치 int nextPos[] = {currPos - 1, currPos + 1, currPos * 2}; for(int pos : nextPos){ q.offer(new int[]{pos, currTime + 1}); } } time++; } return -1; }해당 코드로 다시 작성을 해보았는데 잘되는거는 같은데 혹시 제가 잘못생각하거나 놓치고 있는 부분이 있는지 확인받고싶습니다.