묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨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 파일을 복사해서 채점을 진행하면 아래 캡처 이미지처럼 오류가 발생합니다. 해결 방법 좀 알려주세요. 채점 진행 시 오류가 발생합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제집 실패시 입력값
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문제집에서 런타임 오류시에는 입력값을 안 보여주는데 보여주면 좋겠습니다!
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
안녕하세요. 선생님(54번 코드 관련 문의)
선생님 알고리즘 수업 들으면서 굉장히 도움 많이 받고 있습니다.그런데 여기 54번 문제풀이에서 scanf("%s", &a); 라고 작성하셨는데, 정확히는 scanf("%s", a); 가 맞는 것 같습니다. 물론 &a 와 그냥 a 둘다 결국에는 첫번째 배열 위치를 가리키지만, &a는 char (*)[50] 이라는 배열 포인터이라서 실제로 scanf인자가 기대하는 char * 타입이 아닙니다. 그러므로 a (char *) 로 쓰는 것이 적절해 보입니다. 정말 사소한 것이기는 한데 혹시나 다른 수강생 분들이 오해할 수 있다고 보여서 이렇게 말씀드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-O 17406번 배열 돌리기 질문 있습니다.
http://boj.kr/3457690bac064f1ea89a9a0340d9aa2f제가 한 방식은 순열로 다 저장한 후에 저장한 값 중에서 제일 작은 값을 저장하는 방식을 했습니다.분명 필요한 내용들은 다 했다고 생각했는데, 디버깅을 해도 문제점을 잘 모르겠습니다..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-A 2분대 설명에 대해 질문 있습니다.
안녕하세요,2분대에서,a->b->c 든, a->c->b 든 순서는 상관 없이 둘 중 최적을 구하고 d로 간다고 말씀하신걸로 이해했습니다.그런데, a->b->c 인지, a->c->b인지 실제로 중요하고, 둘 다 탐색 해야하는 것 아닌가요..?a->b->c 인 경우와 a->c->b인 경우 모두 tsp() 함수 호출 시점에 argument로 전달되는 visited 값은 같겠지만, here 값이 달라지는데.. 오히려 반대로, 코드의 흐름상 결과적으로 일어나는 일은:tsp(c, {a, b, c}) 에서 tsp(d, {a, b, c, d}) + dist[c][d] tsp(b, {a, c, b}) 에서 tsp(d, {a, b, c, d}) + dist[b][d] 위 1번과 2번 사이의 비교 아닌가요..?이 경우 분명히 순서가 중요한 것 같아서 헷갈립니다! ㅎㅎ 좋은 강의 항상 잘 듣고 있습니다.감사합니다 🙂
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
투포인터 25:15 질문
투포인터 강의 25:15분 부터 나오는 설명에 대해 질문이 있습니다.0이 3개가 있는데0 + 0 이 왜 6.5가 되나요??그리고 6.5 + 0을 하는데6.5가 어디서 나오는지 이해가 안되었습니다.짜투리가 0이 3개면 그냥 0 아닌가요??
-
미해결해외 빅테크 코딩 인터뷰: LeetCode 포기자의 합격 공부법
조금만 더 고민하면 풀수 있을거 같을때
최대 10분 고민해보고 발상 안되면 넘어가서 발상할 수 있는 방법을 공부하라고 했는데, 막상하다보면 '아 이거 조금만 더 고민하면 해볼 수 있겠다' 란 마음이 들면서 그때부터 이리저리 시도해보고 코드 짜보고 그렇거든요? 이렇게 하다보면 한문제당 시간이 오래 걸리기도 하고요. 못풀때도 있고요. 이런경우 조언 부탁드려요.
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
안녕하세요, print 방식에 대해 문의드립니다.
import sys my_input = sys.stdin.readline N = int(my_input()) [print(sum(list(map(int, my_input().split())))) for _ in range(N)]와 같이 리스트 컴프리헨션 내부에서 바로 print 되도록 코드를 작성했는데,일단 백준 기준으로는 통과가 됐지만 위와 같이 한줄 입력 시 바로 한줄이 출력이 되고 있어서요혹시 나중에 이런식으로 작성할 때 문제가 되는 경우가 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-o 모듈러 연산 질문
"모듈러 연산은 마지막에 한 번만 수행하는 것과 중간중간 수행하는 것이 결과적으로 동일하다."라는 설명은, 아래 모듈러 연산의 성질을 이용하여 a를 cnt, b를 1로 가정했을 때를 의미하는 것인가요?1. [(a mod n)*(b mod n)] mod n = (a*b) mod n"덧셈과 곱셈으로 이루어진 연산에서 cnt %= n을 수행하면 된다" 라는 설명이 다소 헷갈려 질문드립니다.
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
다음 알고리즘의 경우 괜찮은 접근인지 궁금해요
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1- 10어떤 알고리즘을 학습하고 계신가요? 1 - 10 2. 궁금한 부분def find_not_repeating_first_character(string): occurrence_array = find_alphabet_occurrence_array(string) for char in string: if occurrence_array[ord(char) - ord('a')] == 1: return char return "_" def find_alphabet_occurrence_array(string): alphabet_occurrence_array = [0] * 26 for char in string: index = ord(char) - ord('a') alphabet_occurrence_array[index] += 1 return alphabet_occurrence_array딩코딩코 선생님의 풀이와 다르게 반복된 값이 들어 있는 array에서 string의 element를 순회하면서 index의 빈도수를 조회하고 1이면 return 하도록 했는데 괜찮은 접근일까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 4949 문제 해석 질문있습니다.
http://boj.kr/1ceabe24da3440d0b9c019e393febde0위는 (. [ 사이의 공백을 처리하려는 코드입니다.(틀렸습니다 가 뜬 코드입니다. 공백을 처리하는 부분을 지우고 나니 맞았습니다 가 떳었습니다.)제가 공백을 처리하는 것을 dq로 관리했던 이유는 문제에서 '짝을 이루는 두 괄호가 있을 때, 그 사이에 있는 문자열도 균형이 잡혀야 한다.' 라는 조건 때문에 저는 [ first ] 가 입력을 주어졌었을 때 [first ] 이거나 [ first] 이런식의 반례가 있다고 생각해 공백도 처리를 하였는데 정답 코드를 보니 공백을 처리하지 않는거같습니다.저는 문제를 읽고 공백을 처리해야한다고 이해를 했는데 문제에서 어떤 조건 때문에 공백을 처리해도 되지 않는지 이해가 잘 가지 않습니다.또한 공백을 처리하지 않아도 된다는 힌트를 어떻게 얻는지 궁금합니다. 다른 문제에서도요..감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-V 누적합 질문
안녕하세요. 선생님. 문제는 다 이해가 됐는데 코드 시간때문에 질문 올립니다. 올릴때는 들여쓰기가 된줄 알았는데, 올리고 나서 적용이 안되는 줄 몰랐네요... void make1(int num, vector<int>& pSum, map<int, int>& pCount) { for (int interval = 1; interval < num; interval++) { for (int start = interval; start <= num + interval - 1; start++) { int sum = pSum[start] - pSum[start - interval]; pCount[sum]++; } } pCount[pSum[num]]++; // 전부 선택하는 경우 } void make2(int num, vector<int>& pSum, map<int, int>& pCount) { for (int start = 1; start <= num; start++) // 첫번째부터 출발 { for (int interval = 0; interval < num - 1; interval++) / { int tPSum = pSum[start + interval] - pSum[start - 1]; pCount[tPSum]++; } } pCount[pSum[num]]++; // 전부 선택하는 경우 } make1함수를 사용시 840ms정도 걸리고,make2함수 사용시 480ms정도 걸립니다. 두 코드 다 시행 횟수는 (n-1) * n + 1아닌가요? 왜 이럴까요...? 챗 지피티는 메모리 접근이 순차적이지만, '일정한 간격 유지'가 '인덱스 하나 고정 + 순차 증가'보다 cpu 캐시 히트가 더 유리해서 라는데, 혹시 제가 놓치고 있는 부분이 없을까요?