묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
3주차 병합정렬 해결방법
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊 merge 함수에 return이 빠진거같습니다!
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
환경구축강의 중 터미널 파일 실행오류
파워셀에서 node 잘 실행되는 것까지 확인했는데, 터미널에서 node test.mjs 실행이 안됩니다.. ㅠㅠ 이유를 알 수 있을까요?
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
노드간 거리 계산
강의 영상마다 질문이 있으면 언제든 그리고 바로 질문 남겨주세요! 질문할 때 가장 정확하게 이해할 수 있습니다.해당 영상과 관련된 질문들을 해주실 때 제가 가장 정확히 답변 드릴 수 있습니다!취업 전반의 상담이나, "제 코드가 왜 틀렸는지 알려주세요"와 같이 광범위한 질문은, 질문자의 상황에 따라 답변이 달라질 수 있기 때문에, 정확한 답변을 드리기가 어렵습니다 :(이런 분들을 위해서는 멘토링 항목으로 별도 제공하고 있으니, 다음 링크를 참고해주세요!이 링크를 통해서는 본인의 코드가 왜 틀렸는지 모를 때 질문을 주셔도 좋고, 취업 전반(면접 준비, 자소서, CS 면접 등)에 관련한 질문을 주시면 답변 드리겠습니다 :)"이 질문은 해도 되나?"라는 생각이 드신다면 우선 남겨주세요! 제가 답변 드리기 어려운 건 멘토링에 올려 달라고 재요청 드리겠습니다 🙂좋은 강의 감사합니다.노드간의 거리를 계산하는 유형을 정리하실 때 "DFS의 인자에 count 변수를 전달하는 방식" 에 대해서 말씀해주셨습니다. 제가 이해한 바로는 사이클이 없는 구조, 즉 u와 v간의 경로가 하나만 존재할 경우에만 유효하다는 생각이 듭니다. 혹시 제가 오해한 부분이 있다면 알려주시길 바랍니다.감사합니다.
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
해상도 720p 라 글자가 흐릿하게 보입니다.
밝은 화면에서 폰트크기 마저 작은 편이라해상도는 1080p 는 나와야 코드가 잘 보일 거 같습니다.일부 영상은 1080p가 나오고 그외 영상들은 720p 까지만 나옵니다. 수강평으로 남길까하다 빠른 피드백 남기고자 질문으로 남깁니다.
-
해결됨김영한의 실전 자바 - 중급 2편
[오역 제보] 타입 이레이저의 영문 표기
타입 이레이저에 관해 더 검색하던 중, 강의자료 v20241027의 2. 제네릭 - Generic2.pdf 에서 eraser는 오역인 것 같아 제보합니다.Oracle JavaTutorials의 Generic 관련 문서(https://docs.oracle.com/javase/tutorial/java/generics/erasure.html)에서는 이레이저를 erasure로 표기하였습니다. eraser도 어색하지는 않지만 영어 단어와의 통일성을 위해 수정을 요청드립니다.감사합니다.
-
미해결ChatGPT 100% 활용하여 배우는 파이썬 기초 A to Z
Repl.it 들어가서 2~3 질문에 답하는 강제로 입금 하게 생겼서
1-1 장 처음 보다가 Repl.it 검색헤서 들어가서 보니 화면이 강사님 화면 하곤 틀리네요, 시간이 많이 지나서 이해하고중간쯤에 입력하는게 있어서 보니까 뒤로가기 버튼도 있고해서 이름, 직업 등 적어주니까화면이 바뀌며입금 해서 등록 하는 화면이 나오네요.여기서는 뒤로 가기 해도 안되고, 나왔다 다시 들어거기도 않되고어케하면 되나요.Repl.it 에 비용 지불 안하고 공부 하는 방법은 없나요.있다면 어떻게 클리어 하는 방법은 ??
-
미해결김영한의 실전 자바 - 중급 2편
실무에서의 hash(), hashCode() 차이가 궁금합니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션 7 hashCode()에 영상에선 IDE로 equals() hashCode() 생성시 hashCode()의 리턴으로 hash(id)가 생성되는데저는 hashCode(id) 로 생성이 됩니다또 섹션8 Set 문제 2에서는 강의와 똑같이 hash()로 생성이 됩니다구글링으로 매개변수의 차이, 동작 차이와 결과값이 왜 다른지에 대해 이해는 했는데섹션7의 자동생성이 다른 이유와 실무에선 이 둘이 어떤차이로 쓰이는지 아니면 그냥 생성해주는 대로 쓰는지 에 대해 궁금합니다
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
AVL 트리에서 회전 실행 함수 구현 시 질문
17:15분쯤RR회전과 LR회전을 구분하는 방법에서data가 targetNode의 왼쪽 자식노드보다 작은 경우가 RR회전이라고 말씀해주셨는데예시 그림은 LR회전도 data(1)이 targetNode의 왼쪽 자식노드(3)보다 작아보여서요그림이 잘못된걸까요? 아니면 제가 잘못 이해한 부분이 있는지 궁금합니다
-
해결됨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; }해당 코드로 다시 작성을 해보았는데 잘되는거는 같은데 혹시 제가 잘못생각하거나 놓치고 있는 부분이 있는지 확인받고싶습니다.
-
미해결코딩테스트 [ ALL IN ONE ]
강의 처음부터 보고있는데 질문있습니다.
안녕하세요 강의 잘 보고 있습니다. 코드 짜고 파이썬 실행하시던데 한줄씩 실행은 어떻게 하는건가요?
-
미해결JavaScript 알고리즘 베스트 10
6번 샌드위치 문제
문제를 풀고 풀이를 보는데, 솔루션은 통과하는데, 하나 질문드릴게있습니다. https://paullabworkspace.notion.site/6-7775ee07951a463f8175a5ca924944bd 여기에 있는 테스트 케이스를 돌릴 때 강사님의 풀이로 돌렸을 때, [1,1,1,2,3,4,2,3,4,1] 이 배열이 0으로 나오는데, 테스트 result 배열에는 2가 결과값으로 나와있습니다. 혹시 뭐가 결과인지 알 수 있을까요??제가 반복으로 하나씩 그려봤을 때 0이 나오긴하는데.. 0이 맞는건지 2가 맞는거지.. 알려주시면 감사하겠습니다!!{ 'que_number': 6, 'testcase': [ [1,2,3,4,1,1,2,3,4], [1,1,1,2,3,4,2,3,4,1], [1,2,3,4,2,3,4,1] ], 'result': [ 1, 2, 0 ] }
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
3020번 풀이 코드관련 질문있어요
어느 파트 이분 탐색 알고리즘[문제풀이] :BOJ 3020자신은 어떻게 이해했는지이분탐색을 통해 top 과 bottom을 따로 나눠서 탐색하는 것 까지는 이해했습니다.어떤 부분이 궁금한지 get_idx(bots, h - 1) + 1 과 get_idx(tops, h) + 1 이 부분에서 구하려고 하는 높이의 직전 index를 구하는 것 까지는 이해하였으나, 왜 1을 더하는 지는 이해가 잘 되질 않습니다.해당 부분에 대해서 좀더 자세한 설명 부탁드리겠습니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-10강 문제풀이중...
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?섹션1에 10강을 수강하고있습니다1-10. 알고리즘 더 풀어보기 (2) 2. 어려움을 겪는 부분강사님께서 제공해주신 문제를 먼저 풀어보았는데아래처럼 내장함수를 이용해서 풀어도 되나? 궁금합니다. 최대한 저런 함수 사용하지 않고 강사님께서 제공해주시는 풀이법으로 알고리즘을 공부하는게 맞는거같은데.. 저처럼 풀면 안되는건가 싶어서요...ㅠㅠ 알고리즘적인 생각이 아닌가도 싶고 ㅠㅠ 고민입니다!일단 char로 순서대로 돌꺼고 어차피 갯수가 1이면 바로 char 을 return해 주면 되지 않을까? 해서 아래처럼 해보았습니다...def find_not_repeating_first_character(string): # 이 부분을 채워보세요! for char in string: if string.count(char) == 1: return char return "_" 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
1717번 최적화
union find 최적화 과정 중 union 최적화에서rank[a]와 rank[b]가 같을때는 아래로 가는 트리? 높이의 rank를 1 증가해줬는데 왜 다를때는 rank를 증가 안해주나요?증가해주는게 맞지않나? 싶어서 여쭤봅니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
재귀 관련 문제 관찰할 때 질문
저는 현재 재귀, 백트래킹 파트가 암산으로 하기가 힘들어, 직접 스택 프레임을 그려보면서 계산해본 후 이 값이 정말 이렇게 들어가는 게 맞는지 체크를 해보고 있습니다. 다만 실제로 문제를 풀 때 이렇게 하나하나 재귀깊이를 따라가면 시간이 많이 소요될 거 같은데 이러한 부분과 관련해서 팁이 있을까요? 실제로 풀 때는 permutation(level + 1)을 재귀로 쓰면 대충 "[1, 2, 3], [1, 2, 4]... 순으로 나오겠지"와 같은 경험에 기반한 예측을 바탕으로 바로 사용하시는 건지 사고 과정이 궁금합니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
04_MultiIndex 예제에서 질문이 있습니다
안녕하세요 강사님!SearchByIndexAgeRange 함수 안에 있는 코드를 다음과 같이 바꿔서 사용해도 될 것 같아서 변경해보았습니다. void** SearchByIndexAgeRange(int min, int max, unsigned int* pCount) { // unsigned int cntTotal = 0; // USERDATA** aList = (USERDATA**)MakeIndexAge(&cntTotal); unsigned int cntTotal = GetListCount(); USERDATA** aList = g_idxListAge; // 중략... }혹시 이 방식 대신 MakeIndexAge를 사용하신 이유가 있으실까요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-5 알고리즘과 친해지기 (2) - 최빈값(알파벳) 구하기
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?: 1-5 알고리즘과 친해지기 (2) 어떤 알고리즘을 학습하고 계신가요?: 최빈값 찾기(알파벳)여기까지 이해하신 내용은 무엇인가요?: 'a' -> ord('a') -> 97 -> chr(97) -> 'a' 이고, 'A' -> ord('A') -> 65 -> chr(65) -> 'A' 이다. 아스키 코드를 활용하고, 가장 기본이 되는 원리는 이렇다.0이 26개인 배열(a_o_a)을 만들고, 주어진 문자열(string)을 반복문으로 순회한다. (for char in string: ... )ord('a') - ord('a') = 0 이고, ord('b') - ord('a') = 1 이고, ... 이 원리에 따라 ord(char) - ord('a') 를 하면, char가 몇 번째 순서의 알파벳인지 구할 수 있다. 이를 0이 26개인 배열(a_o_a)의 인덱스(i)로 활용한다.string을 반복문으로 순회하면서, (만약 숫자나 띄어쓰기가 아니고 알파벳이라면) a_o_a[i] += 1 을 한다. a_o_a 에 각 알파벳의 빈도수가 저장이 된다.a_o_a를 반복문으로 순회하면서, max_alphabet_index를 구한다.chr(max_alphabet_index + ord('a')) 을 하면 최종적으로 최다 빈도수인 알파벳이 구해진다. 2. 어려움을 겪는 부분 저는 string.count(char)를 이용하여 풀었습니다. 그런데 이 아스키 코드 원리를 활용한 알고리즘이 많이 출제되나요? 코테 출제하시는 분들께서 아스키 코드를 활용한 로직을 더 선호하시는지 궁금합니다!
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1주차 숙제 두번째 문제 풀이에서..
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-11 2. 어려움을 겪는 부분첫 시도에서 count_to_all_zero 와 count_to_all_one이 모두 1이 나오는 이유가 첫번째 문자에 대해서 비교를 안하고 있다고 나와있는데,첫번째 문자가 아니라 맨 마지막 문자를 비교 안하고 있는 것이 아닌가 궁금합니다! 첫 시작에서는 0번째 인덱스와 1번째 인덱스를 비교하지만마지막 len(string) - 1번째 인덱스와 len(string)를 비교할 때는 마지막 문자에 대한 카운팅이 이루어지지 않는게 아닌가 하는데.. 제가 잘못 이해하고 있는걸까요..? ㅠㅠ
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-10 문제 이런 접근은 어떤가요?
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-10 2. 어려움을 겪는 부분재취준을 준비하면서 여러 기업의 코딩테스트를 봤었는데요.항상 시간 예외성 검사에 걸려서 코딩테스트를 탈락합니다.그래서 이 문제를 보면서도 시간을 최대한 줄이고자 노력했습니다. 3. 시도해보신 내용input = "abadabac" def find_not_repeating_first_character(string): while True: found_flag = False if len(string) > 1: target_char = string[0] for compare_char_index in range(1,len(string)): if target_char == string[compare_char_index]: found_flag = True break if found_flag: string = string.replace(target_char, "") else: return target_char else: return "_" result = find_not_repeating_first_character print("정답 = d 현재 풀이 값 =", result("abadabac")) print("정답 = c 현재 풀이 값 =", result("aabbcddd")) print("정답 =_ 현재 풀이 값 =", result("aaaaaaaa")) 제가 봐도 가독성이 안좋긴한데.. 저는 이 문제를 풀면서 가장 먼저 생각한 것이 '이미 한번 훑은 알파벳에 대해서는 순회를 제외한다' 였거든요.그런데 글을 쓰면서 다시 확인해보니 string을 replace할 때 오히려 더 시간이 늘어날 것 같기도 하구요.. ㅠㅠ for문의 대상이 되는 객체를 for문 안에서 변경할 수 없기에 부득이하게 found_flag라는 변수를 선언해서 for문 밖에서 판단 후 replace 하는 식으로 코드를 작성했습니다. 궁금한 점이, 딩코딩코님은 이 접근법에 대해서 어떻게 생각하시나요? 저는 정말 간단할 수 있는 문제를 20분 정도의 시간을 고민하면서 풀었는데, 이런 부분 때문에 실제 코딩테스트를 응시할 때도 시간이 부족했습니다.. ㅠㅠ 코딩테스트를 보면 1 <= N <= 1,000,000,000이런 식으로 제한을 두다 보니.. '길이 1억의 string이 주어졌을 때 전부 순회하면 시간이 너무 길어지지 않나..?' 하는 생각이 항상 발목을 잡는 것 같습니다.. 이런 문제를 접근할 때 어떤 식으로 접근해야 할지 조언 부탁드립니다..항상 좋은 강의 감사드립니다!! (_ _)
-
미해결김영한의 실전 자바 - 중급 2편
7번 장바구니 문제의 minus() 메서드 로직 관련
[질문 내용]문제 7 - 장바구니 문제에서, minus 메서드를 보면 찾으려는 product가 존재하지 않는 경우에도 cartMap.remove()를 호출하도록 되어 있습니다. 존재하지 않는 것을 지우고자 하는 게 불필요하게 메서드를 호출하는 게 아닌가 싶은데, 예제를 쉽게 만들기 위한 선택인가요, 아니면 실무에서 저렇게 결과를 찾을 수 없어도 지우도록 하는 코드를 작성해도 문제가 없는 건가요?