묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
cli 환경에서 c++ 코드 작성 및 실행하기(우분투)
안녕하세요. cli 환경에서 c++ 코드를 작성하고 있습니다. 교안에 나오는 g++ 명령어를 그대로 입력하면 괜찮을까요? 혹은 권장하는 방법이 있나요?- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
배달의 민족 문제에서 효율적인 탐색 방법에 대해 질문드립니다
해당강의 : 2주차;2-10. 2주차 끝&숙제 설명 강사님 안녕하세요.강의 중 두 번째 문제인 ‘배달의 민족 - 배달 가능 여부’ 문제를 풀이하며,아래와 같이 코드를 작성해보았습니다.def is_available_to_order(menus, orders): for order in orders: if order not in menus: return "주문 불가능" return "주문 가능"강의에서 설명하신 set()을 활용한 방식이 탐색 효율이 높다는 점은 잘 이해했습니다.이에 대해 생각해보며, 제가 작성한 방식도 리스트 탐색만으로 충분히 동작하여데이터 규모가 크지 않은 상황에서는 큰 성능 차이가 없을 것 같다는 생각이 들었습니다.두 방식 모두 평균적인 입력 크기에서는 큰 차이가 없을 것 같은데,혹시 제가 사용한 방법도 일정 규모 이하의 데이터에서는 효율적인 접근으로 볼 수 있을지 궁금합니다.또한, 실제 서비스 코드에서는 어떤 기준으로 set() 변환을 적용하는 것이 바람직한지 알고 싶습니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
문제에 어떤 알고리즘을 적용할지 빠르게 결정하는 팁이 있을까요?
코딩 테스트 문제에 어떤 알고리즘을 적용해야 할 지 빠르게 결정할 수 있는 팁이 있는지 궁금합니다.가장 확실한 방법은 많이 풀어보는 방법이겠지만딩코딩코님만의 팁이 있는지 궁금합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
코테 준비
안녕하세요!현재 코딩테스트 준비중인 학생입니다. 백준에서 현재 문제 유형 별로(DFS, 백트래킹 등등..) 풀어 보고 있습니다. 문제는 구현같은 유형은 몰라도 풀 수 있지만 DP, N-queen문제는 해당 문제를 접해보지 않고서는 풀기 힘들다고 생각합니다.하루에 한 유형씩 제대로 이해하기 vs 한 유형만 쭉 풀어서 마스터하기 둘 중에 어떤게 더 좋은 접근법이라고 생각하시나요?막상 유형별로 풀자니 구현, DFS, BFS, DP유형이 코테에 많이 보이는거같아서 고민입니다.
-
해결됨김영한의 실전 자바 - 중급 2편
실프로젝트에서 Java25버전 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서는 Java 21버전을 사용하고, 현재 최신 LTS 버전은 25입니다.실무에서는 21버전을 계속 사용하다가 25버전이 안정화되면 25버전을 사용하나요?아니면 22, 23, 24 바로 업데이트 하는 경우가 많을까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
(시간 초과) BOJ 1342 관련하여 질문이 있습니다
💡 질문 작성 가이드보다 빠르고 정확한 답변을 위해, 아래 사항을 참고해 질문을 작성해주세요.1. 간단한 내용은 ChatGPT로 먼저 확인해보세요.기본 개념이나 용어 설명은 ChatGPT를 활용하는 것이 더 빠르고 효율적일 수 있습니다.2. 질문하실 때, 아래 내용을 함께 적어주시면 좋아요.어느 파트인지섹션 3 - 브루트 포스 알고리즘[문제풀이]: BOJ 1342내가 이해한 내용재귀 + 백트래킹을 이용해서 푸는 방법(방법2) 중 선생님께서 작성하신 dict과 set 객체를 이용한 것이 아닌 collections.Counter를 이용하여 코드를 작성했더니 시간초과가 뜹니다. from itertools import permutations from collections import Counter s = input() def sol(lev): global s, counter, choose, ans # base case if lev == len(s): ans += 1 return # recursive case for k in chars: if counter[k] == 0: continue if (not choose) or (choose[-1] != k): counter[k] -= 1 choose.append(k) sol(lev + 1) choose.pop() counter[k] += 1 counter = Counter(s) chars = tuple(counter.keys()) choose = [] ans = 0 sol(0) print(ans)궁금한 점dict과 set을 이용해서 for문으로 직접 주입하는 방식과 Counter 컬렉션을 이용해서 사용하는 방식에 어떤 차이점 때문에 시간초과가 나는지 궁금합니다(참고로 python3로는 시간초과가 나지만, pypy3로는 통과가 됐습니다. 이 부분도 왜 그런지 궁금합니다.) 파이썬을 선생님 강의로 입문을 해서 그런지 파이썬 기초에 대해 지식이 많이 부족합니다. 알고리즘 본질이 아닌 파이썬에 대해 질문드려 죄송합니다
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
코테 준비생
아직 기초 알고리즘(예: 정렬, 재귀, DFS/BFS) 이해가 완벽하지 않아서요.강의에서 설명하신 접근법을 연습할 때,‘어떤 문제부터 푸는 게 효율적인지’ 혹은 ‘매일 어떤 루틴으로 연습하면 좋을지’ 팁을 주실 수 있을까요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
(섹션 3 퀴즈 관련) - 배열과 링크드 리스트 시간 복잡도 질문
섹션 3 퀴즈에서 헷갈리는 부분이 생겨서 질문드립니다. 문제의 일부는 아래와 같습니다. (정답은 B) 1. 배열과 링크드 리스트의 주요 성능 차이점 중 하나는 무엇일까요?A 배열은 요소 탐색 시 O(1)이 걸리지만, 링크드 리스트는 O(N)이 걸립니다.B 링크드 리스트는 중간에 요소를 삽입/삭제 시 O(1)이 걸리지만, 배열은 O(N)이 걸립니다. 제가 헷갈리는 부분A도 정답이 될 수 있지 않을까요? (A를 선택한 경우 오답으로 처리됨)수업과 수업 자료를 통해 이렇게 이해 했습니다."특정 원소 조회시 배열은 O(1), 링크드 리스트는 O(N)의 시간 복잡도를 가진다" 요소 탐색과 요소 조회는 다른 개념일까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A 질문있습니다.
안녕하세요 큰돌님:)해당 문제를 아래와 같이 풀었습니다.http://boj.kr/0f5124b1f6d449dfab81b98ee45ce9d7 clList.push_back(chList[idx]); comb(idx + 1); clList.pop_back(); comb(idx + 1);이런식으로 수업에서 말씀하신 대로 이것은 치킨 집 중에서 m개만 뽑으면 되는 것이니 있고 없고의 경우로 나눠서 조합 코드를 작성했습니다. 저의 코드에서 수정해야 할 방향이 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-L 질문드립니다.
안녕하세요 7-L을 재귀적으로 푸는 아이디어가 먼저 떠올라 풀어서 통과했습니다. (인사하거나 안하거나)https://www.acmicpc.net/source/99284102 문득 문제를 풀면서 DP의 경우, 재귀방식의 top-down이 보통 취준 코딩테스트에서 시간복잡도에는 걸리는 케이스도 있을지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3주차 수업 질문있습니다.
안녕하세요 큰돌님:)Q. N과 N개의 자연수가 주어진다. 여기서 몇개의 숫자를 골라 합을 mod11을 했을 때 나오는 가장 큰 수를 구하라입력: 1024 35 38 40 49 59 60 67 83 98출력:101024위 문제의 go함수를 아래와 같이 작성했습니다.int go(int idx, int sum){ if(idx == n) { cnt ++; return sum % 11; } return max(go(idx+1, sum + v[idx]) % 11, go(idx+1, sum) % 11); }이렇게 작성해도 괜찮나요?
-
해결됨김영한의 실전 자바 - 중급 2편
Arrays.sort
[질문 내용]MyUser에서 compareTo를 Override한 뒤Arrays.sort(array);System.out.println(Arrays.toString(array));을 했을때 나이 순으로 정렬이 되는데이게 어떻게 이렇게 되는건지 잘 이해가 되질 않습니다.sort가 내부에서 compareTo를 호출하고array가 MyUser타입이기 때문에 MyUser에서 Override한 compareTo를 호출하는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3주차 수업 질문있습니다.
안녕하세요 큰돌님:)제가 지금까지 진행하면서 find와 .find의 사용이 헷갈립니다!! 혹시 어디에는 뭘 사용하는지 정리해주실 수 있을까요?일단 제가 알고 있는 것은 find()는 이터레이터를 반환하고 실패시 해당 컨테이너의 .end()를 반환합니다..find()는 오늘 수업과 "666"문제로 실패 시 string::npos를 반환하는 걸 알았습니다.find는 보통 순차 컨테이너에 사용하는 거 같고 (map, vector, list 등) .find 문자열 그리고 map에서 사용하는 거 같습니다.하지만 이것이 뭔가 정리가 안되어 있는 느낌이라 큰돌님께서 혹시 딱 정리해주실 수 있나요??!!!사실 map일때 key는 .find를 쓰고 쌍을 찾을 때는 find를 쓰고 너무 헷갈립니다. ㅠㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
원더랜드(프림)
제가 다익스트라 알고리즘이랑 헷갈려서 질문드립니다.프림에서는 아무 정점(ex.1번노드)를 시작 정점으로 잡고 pQ.poll하면 선생님 로직은 poll된 노드는 무조건 최소값이다라고 확정짓고 ch배열에 1로 하시는 거에서 혼동이 옵니다.아직 다른 정점들을 다 방문하지 않았는데 왜 최소값으로 단정짓는지 모르겠습니다.만약 시작 정점을 1로 하고 1에 연결된 다음 노드들이 1이 아닌 다른 노드들에서 오는 값이 최소일 거라는 가능성은 왜 배제된거죠?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-C 질문
안녕하세요 강사님 6-C 질문드립니다.https://www.acmicpc.net/source/99232136문제에는 정확히 M번만 통장에서 돈을 뺀다고 하여 위 코드처럼 분기를 cnt > m | cnt < m | cnt == m으로 나눠서 했을 경우 오답으로 나왔습니다. 그래서 혹시나 cnt > m | 나머지로 나누니 통과했는데, 문제에서는 '정확히 M번' 이라고 명시되어 있던 것 같은데, 이러면 M번보다 작아도 정답으로 처리해버리는 것이 아닌지 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문있습니다.
안녕하세요 큰돌님:)이번 문제의 로직은 좀 다르게 생각해서 푼거 같습니다. 물론 큰돌님의 예제 코드가 더 효율적이라 해당 코드로 다시 연습해보겠습니다!!http://boj.kr/c74792f1a0264fdf9df877f3210cc613저의 경우는 문제에서 입력에서 0번 노드부터 주어진다고 하여 따로 root노드를 저장하지 않고 무조건 0번부터 루트 노드라고 생각하고 풀었습니다.그리고 저는 노드를 탐색해서 지워지는 노드라면 해당 노드와 그 아래 노드들(자식 노드)을 모두 벡터에 넣어 find로 문제를 풀었습니다. 저의 코드는 어떤가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문있습니다.
안녕하세요 큰돌님:)전반적인 로직은 큰돌님과 같은거 같습니다. http://boj.kr/42404731b4db4e979af5791ec8a400a8 큰돌님의 경우 mx에 최대값을 넣고 dp 행렬에 mx와 같은 값을 꺼내더라고요. 저의 코드는 순수 비교하면서 이전에 큰돌님이 말씀해 주신 prev를 사용해서 구축했습니다. 저의 코드는 어떤가요?그래도 수업에서 알려주시는 걸 사용하려고 하는데...ㅎㅎ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 질문있습니다.
안녕하세요 큰돌님:)2-Q 문제를 풀었는데 저의 코드가 효율적인지 궁금해서 질문 남깁니다.http://boj.kr/ef8c0d7a6f54429f964d6471f4d387c5저의 코드와 큰돌님의 코드의 로직은 비슷한거 같습니다. 다만 큰돌님의 코드는 녹아야 하는 치즈의 영역을 DFS 즉 go함수에서 벡터에 저장하고, 저는 따로 녹이는 함수를 만들어서 진행했습니다. 저의 코드는 함수에서 DFS이후에 한번 더 2 중 for문으로 탐색을 하는 로직이기 때문에 시간 복잡도가 오르는 단점이 있는 거 같습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
제가 문제를 이해한 것인지 확인 부탁드립니다.
안녕하세요 제가 문제를 이해한 바가 맞는 것인지 확인 부탁드립니다.해당 문제는 단순히 "1" + "666" 처럼 숫자 뒤에 666을 붙이는 것이 아니라, 1씩 증가하면서 그다음 666이 포함되는 숫자를 찾는 것.1편의 경우 666, 2편의 경우 그다음 666이 들어간 숫자의 가장 최솟값이 1666임, 3(2666), 4(3666), 5(4666), 6(5666)편도 마찬가지. 그 뒤로 7편부터는 6660이 "666" 이 들어간 최솟값이므로 6660, 6661 ... 식으로 올라감. 이렇게 이해하면 되는걸까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이런 코드는 어떤가요?
import java.util.*; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); solution(in.nextInt(), 1, 1, 0); in.close(); } public static void solution(int target, int start, int value, int prevValue) { if (target >= start) { System.out.print(value + " "); solution(target, start + 1, value + prevValue, value); } } }다음과 같이 풀어보았는데요, 재귀와 메모이제이션을 비슷하게 구현한것 같아서요. 이렇게 작성하면 어떨지 문의드려요!