묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
선택 정렬 질문
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 3주차 2강어떤 알고리즘을 학습하고 계신가요? 선택 정렬여기까지 이해하신 내용은 무엇인가요? 선택 정렬 원리 2. 어려움을 겪는 부분어느 부분에서 막히셨나요? 교재 잘못 나온 부분코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊 딩코님 안녕하세요! 교재에 잘못 나온 부분인가 싶어서 질문 남깁니다.3주차 선택 정렬 부분에서요딩코님께서도 이렇게 설명을 하시고,직접 파이참에서 돌려봤을 때해당 결과가 이렇게 나왔습니다. 그런데 교재에는실행결과가 다르게 나와있어서 혹시 교재 잘못나온 건 아닌지 여쭤봅니다.교재 보면서 혼자 생각정리 하고 있었는데, 아무리 생각해도 실행결과가 저게 아닌 것 같아서 직접 돌려보고 강의도 봤는데 교재에 나온 결과가 안 나오더라고요
-
해결됨자바스크립트로 배우는 자료구조 & 알고리즘 (개념+문제풀이)
강의에 나온 selection 코드에 오류가 있습니다.
강의 코드function selectionSort(array) { const n = array.length - 1; for (let i = 0; i < n; i++) { let minIndex = i; for (let j = i + 1; j < n; j++) { if (array[j] < array[minIndex]) { minIndex = j; } } if (minIndex !== i) { const temp = array[i]; array[i] = array[minIndex]; array[minIndex] = temp; } } return array; } // console.log(selectionSort([77, 41, 6, 4, 3, 2, 5, 222])); console.log(selectionSort([3, 6, 5, 2, 8, 1]));[문제]위 방식처럼 하면 n이 array.length - 1 이기때문에 두번째 for문은 j가 마지막 인덱스 이전까지만 수행된다. 즉 마지막 인덱스 요소는 정렬 X[3,6,5,2,8,1]를 예시로 들자면,i가 0일때 j는 1번째 인덱스부터 시작하며 j가 n보다 작을때까지 최소값을 탐색한다. j가 5일때 j < n 조건에 맞지 않아 minIndex를 1로 바꾸는거 실행 X[해결]따라서 n을 array.length - 1로 할당하지 않고 array.length로 해야함그러면 두번째 for문에서 j의 조건에 맞아 마지막 인덱스 접근 가능추가로 i는 마지막 인덱스에 접근할 필요가 없으므로 첫 번째 for문의 조건을 n - 1로 바꾸기. function selectionSort(array) { const n = array.length; for (let i = 0; i < n - 1; i++) { let minIndex = i; for (let j = i + 1; j < n; j++) { if (array[j] < array[minIndex]) { minIndex = j; } } if (minIndex !== i) { const temp = array[i]; array[i] = array[minIndex]; array[minIndex] = temp; } } return array; } // console.log(selectionSort([77, 41, 6, 4, 3, 2, 5, 222])); console.log(selectionSort([3, 6, 5, 2, 8, 1]));
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
String 객체가 하나 더 생성되는 이유가 궁금합니다
강사님 안녕하세요."[실습] MyString 클래스 생성자 다중 정의" 강의 6:21 설명에서 생성자에서 this.setString(param)을 실행할 경우, String 객체가 하나 더 생성된다 하셨습니다.저는 여기서 param이 객체 참조를 넘겨주어서 따로 객체가 생성되지 않을 것이라 생각했는데 혹시 어떤 이유로 생성되는지 궁금합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
문제 생각 몇분정도가 좋을까요
최빈수 풀고 있는데 문제들을 앞으로 풀면서 몇분정도 고민하고 풀이를 보면 좋을 지 여쭤봅니다. 감사합니다!!
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
스스로 고민하고 답을 보지 않고 구현을 해보았는데요
# 1012 T = int(input()) dx = [0, 0, 1, -1] dy = [-1, 1, 0, 0] for _ in range(T): M, N, K = map(int, input().split()) graph = [[0] * M for i in range(N)] st = [] seen = set() # seen.add((0, 0)) for i in range(K): x, y = map(int, input().split()) graph[y][x] = 1 st.append([y, x]) cnt = 0 while st: cur = st.pop() for i in range(4): x = dx[i] + cur[0] y = dy[i] + cur[1] if not (0 <= x < N and 0 <= y < M): continue if (x, y) in seen: continue if graph[x][y] == 0: continue st.append([x, y]) seen.add((x, y)) if (cur[0], cur[1]) in seen: continue else: seen.add((cur[0], cur[1])) cnt +=1 print(cnt)값이 처음 구현 햇을때 제대로 안나오길래원래는 cur를 for i in range(4) 위에서 seen에 찍어줬었는데 -> 실패그래서 cur를 방점을 찍어주듯이 주변을 다 돌고 자신을 seen에 찍게 했더니 통과가 되서혹시 코드에 조언해주실 수 있는지 질문드립니다!
-
미해결개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기
실습권한좀 빨리주세요
실습 권한 부여를 위해 프로그래머스 회원 가입 후 섹션 1에서 아이디를 제출해 주세요. 이렇게 말하면 어떻게 알아듣나요
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
수업교재 링크 문의
안녕하세요! 수업 교재 링크에서 제목만 뜨고 코드나 내용 설명은 안뜨네요ㅠㅠ pdf로 열면 뜨는데 코드가 짤리게 나와서 드래그 복사를 해도 짤린 부분까지만 복사가 되요ㅜ 강의 영상에서처럼 강의 자료를 보려면 어떻게 해야 될까요?
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
하위 클래스와 상위 클래스의 생성자 순서
섹션 4. 상속과 관계 - 22. 상속과 생성자 10:45 설명이 막연하여 남깁니다.MyTestEx 클래스의 생성자에는 상위 클래스의 생성자를 호출하는 super()가 생략되어 있습니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
오타가 있습니다.
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?4-4강의 내용 중 오타가 있습니다.루트 노드와 맨 끝에 있는 원소를 교체하면 3 6 72 5 4 8이 되어야합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
9. 1-6 시간복잡도 계산하기
시간 복잡도 구할때 이미지에서 빨간색 박스 친 대입 연산자는 왜 빠진건가요?
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
섹션 6 사전문제 3번문제 답안이 틀린것 같아요
1번문제 예시 답안에 답안 코드가 없구요3번문제 답안도 문제 수열 (3, 6, 13, 28, 59, ...)과 안맞는데점화식이 a(n) = a(n-1)*2 + (n-2)가 되야 수열과 맞는데 확인 부탁드려요
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
강의 상 구현 하는 내용과 강의 책 구현 요구 내용이 조금 달라요
2-5.링크드 리스트 구현 - 2 02_04_add_node_linked_list.py 해당 내용에서 강의에서는 index 번째에 value 를 추가 하라고 되어있는데, 교재 해당 코드 스니펫의 return문 에는return "index 번째 Node 뒤에 value 를 추가하세요!"라고 기재되어있습니다 🙂풀이 부분은 강의와 동일한데, 해당 부분 먼저 확인해서 문제를 풀면 기준이 조금 달라져서 풀이가 달라지게 되니 문구의 수정이 필요하지 않나 해서 질문 남깁니다!
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
GC의 age와 관련하여 질문 있습니다.
안녕하세요!JVM 파트를 복습하다가 궁금한 점이 생겨 질문드립니다. Young Generation(Eden → S0 ↔ S1) → Old Generation → Permanent 영역으로 객체가 이동하는 과정에서 객체의 age가 세대 간 이동(Eden → S0 ↔ S1 포함)을 거치며 증가한다고 설명해주셨습니다. 그런데 제가 알고 있기로 age는 Young Generation 내의 Survivor 영역(S0 ↔ S1)을 이동할 때에만 증가하는 것으로 알고 있습니다.age는 객체가 Minor GC를 거쳐 살아남은 횟수로 일반적으로 약 15회 생존하면 Old Generation으로 승격될 수 있는 조건이 되고, Old Generation으로 승격된 이후에는 더 이상 age가 증가하지 않는다고 알고 있습니다. 혹시 이 동작 방식이 JVM 구현체에 따라 달라질 수 있는 부분인지 아니면 제가 알고 있는 age는 다른 age인 것인지 궁금해서 질문드립니다:)
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
Object Header 의 Klass word (39강 36:00)
39강의 36분 경에 보여주시는 그림에 보면 Object Header 의 Klass word 가 Metaspace 영역의 Class 클래스의 메타데이터를 가르키고 있습니다. 해당 Class 클래스의 메타데이터 내용을 보면 Object Age 나 Lock Flag 등이 들어가는데 제가 공부하기로는 Object Age 나 Lock Flag 와 같은 개별 인스턴스가 가져야 하는 메타데이터는 Mark Word 에 저장되는 것으로 알고 있었는데, 아닌가요?그렇다면 이 강의에서 설명하신 바로는 Class 클래스가 클래스로더의 "준비" 단계에서 생성되고, 실제 인스턴스 객체는 나중에 생성된다고 하셨는데 "준비"단계에 생성된 Class 클래스에 인스턴스 별로 다르게 가져야 하는 정보 (age, lock flag 등) 이 어떻게 구별되서 저장되나요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
문자열 뒤집기 문제 질문입니다!
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?1-11 def find_count_to_turn_out_to_all_zero_or_all_one(string): # string을 순회하면서 0과 1의 연속된 덩어리 개수를 구함 # 그 개수중 min을 return zero_seq = 0 one_seq = 0 prev_num = string[0] # 첫 bit 초기화 if string[0] == "0": zero_seq += 1 else: one_seq += 1 # 2번째 bit부터 마지막까지 순회 for bit in string[1:]: if bit != prev_num: if bit == "0": zero_seq += 1 else: one_seq += 1 prev_num = bit min_count = min(zero_seq, one_seq) return min_count result = find_count_to_turn_out_to_all_zero_or_all_one(input) print(result)안녕하세요!1주차 숙제 중 문자열 뒤집기 문제를 풀면서 궁금한 점이 있어 질문 남깁니다.저는 풀이가 위 코드와 같이 나왔는데, 정답 코드랑 비교했을때 살짝 다르더라구요.출력은 잘 나오는 것 같은데, 정확한 차이가 궁금합니다.저는 현재 bit를 이전 bit와 비교하고, 강사님은 현재 bit를 다음 bit와 비교하는 방식의 차이일까요?아니면 제 풀이에 문제가 있을까요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-10 시간복잡도 질문입니다.
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-10 2. 어려움을 겪는 부분def find_not_repeating_first_character(string): alphabet_occurrence_array = [0] * 26 for char in string: if not char.isalpha(): continue arr_index = ord(char) - ord("a") alphabet_occurrence_array[arr_index] += 1 not_repeating_character_array = [] for index in range(len(alphabet_occurrence_array)): alphabet_occurrence = alphabet_occurrence_array[index] if alphabet_occurrence == 1: not_repeating_character_array.append(chr(index + ord("a"))) for char in string: if char in not_repeating_character_array: return char return "_" 아래 부분에서 시간복잡도가 O(N²) 인 것 같은데 왜 O(N)인지 궁금합니다.for 문은 O(N) 인 건 알겠습니다!if문에서 char가 not_repeating_character_array 리스트에 포함되어있는지 최악의 경우에 리스트 크기 만큼 돌아야하니까 O(N)라고 생각해서 총 시간복잡도는 O(N) * O(N) = O(N²) 로 계산했습니다... for char in string: if char in not_repeating_character_array: return char
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
파이참 가상환경 생성 실패
안녕하세요, 알려주신대로 계속 했는데 파이참 가상환경이 생성이 안돼 질문 드립니다. ㅜㅜ 😊
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-5 파이썬 max 함수를 사용하지 않는 이유
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?1-5어떤 알고리즘을 학습하고 계신가요?알고리즘과 친해지기(2)여기까지 이해하신 내용은 무엇인가요?max값을 구할 때 리스트의 max 함수를 사용할 수도 있는데 굳이 max 값을 따로 구하는 이유가 있으신가요? 그게 더 시간 복잡도상으로 좋아서인지 초심자 입장에서 생각해보려고 하는 건지 궁금합니다..
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
입/출력으로 모듈화를 해서 문제를 풀어보려고 하는데 방향이 맞는지 궁금합니다.
# 단어 입력 / 목록 리스트 출력 # 목록 리스트 입력 / 중복 검사 리스트에 이미 있는 요소인지 확인 후 각 요소를 다른 문자가 나오기전까지 중복 검사 리스트에 저장 # 중복 검사 리스트가 온전히 만들어진걸 카운팅 +1 입력 / 카운팅 출력 import sys input = sys.stdin.readline t = int(input()) cnt = 0 words = [] for _ in range(t): words.append(input()) for word in words: used_li = [] cur_word = '' flag = 1 for c in word: if cur_word != c and c not in used_li: cur_word = c used_li.append(c) continue if cur_word == c: continue if cur_word != c and c in used_li: flag = 0 break if flag == 1: cnt += 1 print(cnt) 헤이밥 강의를 보고 평소 풀던 방법이 아닌 모듈화로 쪼개서 풀어보려 하는데 괜찮은지..그리고 조건문을 좀 복잡하게 달아서 푼 것같은데 방법론적으로 좋은 접근인지도 조언을 구하고 싶습니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
5주차 진도 나가기전 질문입니다.
안녕하세요 딩코님!현재 4주차 숙제부분까지 강의를 완료하고 5주차는 실전문제풀이과정이라 해당 과정 들어가기전에 질문이 있습니다. 4주차 까지 들으면서 이전까지는 숙제문제는 바로 코드로 작성하진 못해도 어 이렇게 풀면 되지않을까 하는 구상이 가능했는데 3주차 숙제인 멜론 베스트 앨범뽑기부터 해서 4주차 숙제들은 전부다 문제를 봐도 해당 주차에 배웠던 알고리즘들을 이용해서 풀어보려해도 시작점 조차 생각이 나질않아 바로 해설영상을 보고 따라치는 정도로밖에 하질못해 다시 반복해서 공부할 예정입니다.5주차 영상부터는 4주차까지의 숙제로 주신 알고리즘 문제를 전부 이해하고 시청하는게 좋을까요 아니면 일단 문제들을 최대한 풀어서 익숙해질떄까지 계속 풀면서 이해하는게 좋을지 궁금합니다. 또 알고리즘 문제를 풀면서 정답이나 해설영상을 몇분까지 풀다가 보면 좋을까요지금까지는 문제를 풀다가 '아 나 더이상 이 이상은 작성 못하겠어' 할떄 정답과 해설영상을 봐왔는데이렇게 하니 어려운 문제를 풀때는 시간이 너무 소모되는거 같아 이게 맞나? 싶을떄도 있어 제가 잘못 공부하고있는건지도 궁금합니다!