묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
성능 비교 관련해서 질문 있습니다.
안녕하세요 큰돌님 강의 잘 듣고 있습니다.저는 공부할 때 제가 짠 코드랑 큰돌님이 짠 코드 그리고 채점현황에 있는 다른 사람코드를 보며 걸린 시간을 자주 비교해봅니다.걸린 시간이 차이나는 건 해결방법의 시간복잡도의 차이가 있어서겠지만, 코드를 비교하다보면 꽤나 자주 문제를 푸는 방법이 비슷한데도 불구하고 걸린 시간 차이가 유의미해 보이는 경우가 있습니다.예를 들면 4-F문제의 경우 큰돌님이 공유해주신 코드는 124ms걸렸습니다. (제가 다시 큰돌님 코드 그대로 다시 돌려봤을 때는 100ms 걸렸습니다.)http://boj.kr/7943b7d08dcb4d30bec01eabbf160e77그리고 제가 큰돌님 코드를 참고해서 다시 짠 코드는 24ms가 걸렸습니다.http://boj.kr/e57959b67c14428ab1a14942f45f667e큰돌님꺼 보고 짠거라 논리는 거의 똑같은데 4~5배 정도의 시간차이가 나서 꽤 유의미한 차이가 나는 것에 의문이 들었습니다.하지만 제가 그 우의미한 시간 차이의 원인을 찾기는 힘들었습니다.백준 테스트케이스의 구성에 따라서 같은 성능을 가진 두 코드라도 걸린 시간의 유의미한 시간 차이가 생길 수 있는 걸까요?걸린 시간 차이가 왜 생겼는지 고민해보는 건 좋겠지만 이 정도의 코드 차이에 대해서 걸린 시간 차이가 왜 생겼는지 고민해보는 건 불필요할까요?아니면 제가 생각히지 못하는 두 코드의 유의미한 성능에 영향을 주는 요소가 있을까요?이런 비교를 하는데 너무 시간을 쓰는 건 아닐까 고민이 되기도 해서 질문드립니다.감사합니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 def solution(l,k): result = [] curr = [] def backtracking(start, curr): if len(curr) == k: result.append(curr[:]) return for i in range(start, len(l)): curr.append(i+1) backtracking(i + 1, curr) curr.pop() backtracking(0, curr) return result위의 코드에서 if len(curr) == k: 안에 result.append(curr[:]) 대신 result.append(curr)을 넣으면 result = [[], [], [], [], [], []]와 같이 값이 제대로 추가가 안 되던데 무슨 차이가 있는 건가요?main 함수에서 test1 = [] test2 = [1,2,3] test1.append(test2) print(test1) test1 = [] test1.append(test2[:]) print(test1)이와 같이 테스트를 해보면 두 프린트 결과 모두 [[1,2,3]]으로 동일하게 나오는데 위의 경우는 달라서 질문 드립니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
라이브러리 사용
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님! 수업을 듣다가 궁금한 점이 생겨 남깁니다. hash table 파트에서 중복없이 해야 한다면 dictionary 로 하는 것보다 set()을 써서 하는게 더 편하지 않나요? 순열, 조합 파트에서 백트래킹 대신에 from itertools import permutations, combinations를 사용해서 풀어도 되나요? 혹시 순열, 조합, 부분집합 이외에 백트래킹을 활용해야 하는 코딩테스트 문제는 추가적으로 어떤 것이 있는지 궁금합니다!
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
이 번에 처음으로 알고리즘이라는 걸 공부해보고 있는데
1주차 연습문제를 안보고 풀 정도면 혹시 어느정도 수준일까요..?ㅜㅜ 지금은 너무 어렵긴한데 계속 복습해봐야 할 것 같아서요 흑흑..실제 코테는 이정도 수준으로는 안나오겠죠... 더 어렵게 나오겠죠..?ㅜㅜ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
visited와 거리의 관련
안녕하세요 큰돌님 열심히 수강중인 학생입니다.이번 강의를 들으면서 조금 이해가 안가는 부분이 생겼습니다.visited는 방문 여부를 나타내기위한 배열인것으로 알고있는데 거리관련 배열을 새로 선언한것보다 visited에 거리를 추가해주는것이 더 편리한거같긴한데 나중에 문제를 풀때도 그냥 통합해서풀어도 문제가 없을까요? 한가지 배열로 두가지 역할을 하다보니 나중에 문제 풀이 중에 문제가 생기지 않을까 걱정되는 마음에 질문 드립니다!
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
1강 연습문제&목표문제 정답지 위치
1강 연습문제&목표문제 정답지 위치가 궁금합니다
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
스택 - 탑문제
1. 현재 학습 진도3-5 스택부분 수강 2. 어려움을 겪는 부분백준 탑 문제를 강사님께서 구현해주신 코드로 풀어보고 있는데 강사님 코드를 사용하면 시간초과가 나는 것 같습니다.3. 시도해보신 내용 N = int(input()) tops = list(map(int, input().split())) def top_stack(N): result = [0] * N while tops: cur_top = tops.pop() for i in range(len(tops) - 1, -1, -1): if cur_top <= tops[i]: result[len(tops)] = i + 1 break print(' '.join(map(str,result))) top_stack(N)강사님께서 구현해주신 코드에 입력값을 사용자가 지정하게만 바꿔서 백준문제를 풀어보려고 했는데, 시간초과가 납니다. 제가 혹시 코드에 실수한 부분이 있는지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-F
안녕하세요 큰돌님.큰돌님의 풀이는 왼쪽부터 다이얼을 돌리면서 답을 찾아갑니다.다이얼을 돌리는 시작 위치에 따라 답이 달라질 수 있지 않나요?왼쪽부터 다이얼을 돌려도 답을 구하는데 지장없는 이유를 알고 싶습니다.감사합니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
문제 교재는 따로 없는 거 맞나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요코테 적용 문제들은 교재에 따로 없이 강의 아래의 리트코드 주소를 통해서 확인하고 푸는 거 맞나요??영어로 되어있어서 질문 올려봅니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-S 짝수 / 홀수 방법 질문
안녕하세요 큰돌님.해당 문제의 짝수 홀수 기법에 대해 궁금합니다.다른 간선들이 동일하게 2배로 증가하는 가운데,G , H 사이의 간선만 2배만 증가하고 1씩 빼주는 처리를 하면, 원래 간선의 걸이대로 최단거리를 계산했을 때와 다른 결과가 나올 수도 있지 않나요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점사이트버튼이안보여요
채점사이트버튼이안보여요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-P 1219 테스트케이스 질문
안녕하세요 큰돌님.테스트케이스 1개가 이해되지 않아 질문드립니다.4 0 3 4 0 1 01 2 02 1 00 3 1010 10 10 10제가 보기엔, 0 -> 1 -> 2 -> 0 방향으로 무한사이클을 돌다가 마지막에 3으로 가서 "Gee"인 것 같은데, 왜 답이 10인지 궁금합니다.
-
미해결자바 코딩테스트 - it 대기업 유제
과일 가져가기 이러한 경우에는 반례가 생기지 않나요?
예외 값 테스트를 해보다가 발견하게 되었는데```System.out.println(T.solution(new int[][]{{2, 4, 7}, {13, 13, 12}})); ```이렇게 테스트를 해보니 14가 나오더라구요.제가 문제를 정확하게 이해하지 못한 것인지, 반례가 있는 것인지 궁금합니다.
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
3-8 해쉬 관련 다른 풀이도 궁금해요.
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 3-8 해쉬-2어떤 알고리즘을 학습하고 계신가요? 해쉬여기까지 이해하신 내용은 무엇인가요? 전체 이해 완료안녕하세요 선생님 궁금한 점이 있어요.HashTable의 경우에도 조회 성능이 최선일 경우 O(1)이고, set 자료구조에 포함되어 있는 지 여부조회도 O(1)로 이해를 했습니다!해당 문제의 경우 set으로 변환하고 풀어도 시간복잡도 면에서 성능은 비슷하다고 봐도 될까요~? def get_absent_student(all_array, present_array): present_students_set = set(present_array) for student in all_array: if student not in present_students_set: return student
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Scanner vs BufferReader
Scanner는 시간 초과 문제가 발생할 수 있다고 들었습니다. 앞으로 코딩테스트를 준비할 때 계속 Scanner를 사용하면 될까요? 아니면 BufferReader로 입력하는 법을 알아야 할까요?
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
재귀함수 관련 질문
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 어떤 알고리즘을 학습하고 계신가요? 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?재귀함수 부분이 알려주신 문제에선 이해가 되는데, 제대로 이해가 안된 느낌이라서 혹시 연습문제를 풀면서 기본기와 감을 익힐만한 문제들 추천해주실 수 있으신가요?코드의 어떤 로직이 이해가 안 되시나요?재귀함수의 작동원리는 알겠으나, 실제로 구현하고자 할 때 어떻게 구현해야할지 문제마다 새롭게 다가오는 것 같습니다.어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2개의 배열 말고 2차원 배열 사용
안녕하세요. 선생님 배열 2개 말고 2차원 배열로 풀었는데 괜찮나요?? 그리고 강의에서 문제들 입력받으실 때 왜 static으로 받지 않고 메인 메서드에서 받아서, DFS의 파라미터로 계속 주고받으시는지 궁금합니다. import java.util.Scanner; public class INF0803 { static int[][] problems; static int problemsCount; static int limitTime; static int maxScore = Integer.MIN_VALUE; public static void main(String[] args) { Scanner sc = new Scanner(System.in); problemsCount = sc.nextInt(); limitTime = sc.nextInt(); problems = new int[problemsCount][2]; for (int i = 0; i < problemsCount; i++) { for (int j = 0; j < 2; j++) { problems[i][j] = sc.nextInt(); } } DFS(0, 0, 0); System.out.println(maxScore); } static void DFS(int index, int currentScore, int currentTime) { if (currentTime > limitTime) { return; } if (index == problemsCount) { maxScore = Math.max(maxScore, currentScore); return; } DFS(index + 1, currentScore + problems[index][0], currentTime + problems[index][1]); DFS(index + 1, currentScore, currentTime); } }
-
해결됨김영한의 실전 자바 - 중급 2편
연결리스트 삭제 중 시간 복잡도 계산
public E remove(int index) { Node<E> removeNode = getNode(index); E removedItem = removeNode.item; if (index == 0) { head = removeNode.next; } else { Node<E> prev = getNode(index - 1); prev.next = removeNode.next; } removeNode.item = null; removeNode.next = null; size--; return removedItem; } private Node<E> getNode(int index) { Node<E> curr = head; for (int i = 0; i < index; i++) { curr = curr.next; } return curr; }MyLinkedList 클래스에 정의된 메서드 중 일부입니다. 링크드리스트의 경우 맨 앞 노드를 삭제하는 경우 참조의 조정만으로 삭제할 수 있어 O(1)이 소요된다고 배웠습니다. 연결리스트 내부의 필드로 가지고 있는 first를 활용해 바로 참조하지 않고 getNode()를 사용하면 메서드가 갖는 시간 복잡도를 따르지 않나요? getNode()는 평균적으로 O(n)이 걸리는 메서드라 생각해서 이 메서드가 사용되는 remove()의 경우 마찬가지로 O(n)인지, 어차피 getNode()를 사용해도 인덱스 1이니 O(1)로 간주하는지 궁금합니다.
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
1강 연습문제 복습문제1 문제 오류
문제 설명알파벳으로 이루어진 문자열 하나를 입력받아, "길이가 5 이상인 경우에만" 문자열 전체를 대문자로 변환하여 반환하는 함수를 정의하시오.길이가 5 이하라면 '길이가 5 이하입니다' 메시지를 반환합니다.예시입력: 'abc'출력: '길이가 5 이하입니다'입력: 'abcde'출력: 'ABCDE' 5이상과 5이하는 길이가 5인경우 이상,이하 모두 포함되는데길이가 5 이하라면 '길이가 5 이하입니다' 메시지를 반환합니다. -> 5 미만으로 문제 수정되야 할 것 같아요
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.
안녕하세요 세션1의 1.k번째 약수 수업을 듣고 vs에서도 잘 도는거 확인하고 파이썬 에서도 정상 수행되는것 확인하고 AA.py 파일을 복사해서 채점을 진행하면 아래 캡처 이미지처럼 오류가 발생합니다. 해결 방법 좀 알려주세요. 채점 진행 시 오류가 발생합니다.