묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-L 어디가 틀렸는지 모르겠습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의를 보지 않고 다시 풀어봤는데 틀렸다고 나오네요예제는 올바르게 출력되는데 어디가 문제일까요??http://boj.kr/02d16c630e354150a7ab48c2ceda27a0
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
다른 풀이
http://boj.kr/07a720d2a75341d19919c4112a7f0c8f 위와 같이 풀었는데, 너무 비효율적이진 않은가 고민입니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님 예제 입력은 맞게 나오는데 왜 틀렸는지 모르겠네요. 반례를 1시간 고민했지만 도저히 몰라 질문 남깁니다 http://boj.kr/79bd2e50720d4be3ba4341ccc6706ed3
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 괜찮을까요?
for문을 사용하지 않고 sort를 사용해 정렬하고 정렬된 첫 번째를 출력하도록 해서 값을 구했는데 이렇게 해도 되나요?
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 괜찮을까요?
이렇게 풀어도 괜찮나요? 너무 단순하게 푼 거 같아서요
-
미해결개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기
강의 업로드 오류
2-1, 2-2 강의 업로드 된 내용이 1-1,1-2와 동일해요
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
17609 투포인터 문제를 재귀로 풀 경우가 궁금합니다!
파트 : 투 포인터 알고리즘 [문제풀이]: BOJ 17609투 포인터 알고리즘 [문제풀이] : BOJ 17609안녕하세요, 백준 17609 회문 문제를 혼자서 풀어봤을 때, 처음에 투 포인터 알고리즘으로 풀려고 left, right를 선정하고 양방향으로 오게 만들었습니다. 그런데 이때 문자가 다를 경우 left, right에 해당하는 문자를 각각 삭제해보고 안되면, 다시 돌아가는 방식백트래킹을 생각했고 재귀로 풀고자 했습니다. 아래의 코드로 풀면 답은 잘 나오는 거 같지만, 제출하면 메모리 초과가 발생합니다.제가 재귀의 개념을 잘 이해하지 못한 거 같은데, 이렇게 풀면 브루트포스 풀이가 되어서 정답이 아닌걸까요?그렇다면 해당 문제에서 '투포인터를 사용했을 때'와 저처럼 '재귀로 풀었을 때'의 큰 차이점이 무엇인지 궁금합니다..! 질문 받아주셔서 감사합니다:)import sys sys.setrecursionlimit(10**6) # 재귀 깊이 제한 늘리기 def recursion(value, left, right, count): global T # base if count > 1: return 2 if left >= right: return count # recursive if value[left] == value[right]: return recursion(value, left+1, right-1, count) else: # 1. right를 옮겨보기 skip_right = recursion(value, left, right-1, count+1) if skip_right == 1: return 1 # 2. left를 옮겨보기 skip_left = recursion(value, left+1, right, count+1) if skip_left == 1: return 1 return 2 T = int(input()) # 문자열 개수 arr = [input() for _ in range(T)] for value in arr: left = 0 right = len(value)-1 print(recursion(value, left, right, 0))
-
미해결김영한의 실전 자바 - 중급 2편
9강 해쉬맵 회원관리기능 연습문제 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]연습문제 회원 관리 기능을 만드는중 findByName에서 헷갈려서 질문을 남김니다. 다음은 제가 작성한 소스코드입니다/** * get 메서드는 key값을 통해서 value를 반환한다 * key-> id, value ->memeber * value의 구조는 STRING: ID, STRING NAME이므로 * value를 하나로 펼쳐서 순회한 다음, 이름에 맞는 member를 반환 * */ public Member findByName(String name) { Boolean findMember = memberMap.containsValue(name); if(findMember!=null){ for(Map.Entry<String, Member> entry: memberMap.entrySet() ){ String key =entry.getValue().getId(); String parameterName = entry.getValue().getName(); if(parameterName==name) { return memberMap.get(key); } } } return null; }다행히 결과는 문제 없이 돌아가가나 String key = entry.getValue().getId()에 디버그를 찍으면Boolean findMember = memberMap.containsValue(name);//findMember:false, name: 회원3다음과 같이 표기 되는데 분명 회원3의 값을 저장 했는데 왜 findMember가 false로 나오는 걸까요?이유가 궁금합니다. 그리고 제가 작성한 findByMember 로직이 맞을까요 ? 많은 피드백 부탁드립니다!
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
멜론 베스트 앨범 알고리즘 시각화 궁금중
1. 현재 학습 진도 현재 3주차 숙제 부분에서 3번째 문제인 멜론 베스트 앨범 알고리즘을 공부하고 있습니다. 2. 어려움을 겪는 부분이해가 되지 않는 부분이 있어서, 문의 드립니다.3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록한다.해당 문제에 보면 , 위와 같은 조건이 존재하는데 , 제가 강의를 두 번이나 돌려보면서 듣고 있는데 ,강의 하신 내용에, 재생횟수가 같은 노래에 대해서는 처리하신 코드가 안 보이는데, 보내주신 코드를 프로그래머스에 돌려봐도 정상적인 답안이라고 나오더라고요.그래서, 해당 부분에 대한 설명이 있으면 더 좋을 듯 하고 궁금해서 질문드립니다.제가 생각한 부분은 이미for 문을 돌 때, 인덱스 순서대로 되어 있으므로, 재생횟수로 정렬을 해도 인덱스가 낮은 것이 무조건 앞으로 오게 된다. 이렇게 생각했는 데 맞는 것인지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-C 질문있습니다.
안녕하세요 큰돌님. 7-C에서 고전하다 강의 덕분에 결국 문제를 이해하고 풀 수 있게 되었습니다. 하지만 풀다가 의문점이 하나 생겨서 질문을 남기게 되었습니다.http://boj.kr/3822cd1a54ca419ca30423cff2285ad4이 코드의 로직과 정답코드의 로직의 차이점은 단 한가지 입니다. 정답코드는 기저 조건을 달성할 시 0을 return한 다음, 재귀 함수의 끝에 다다른 후, 다시 거슬러 올라가며 1씩 더해서 이동 거리를 구하는데, 이 코드는, 재귀함수를 호출하는 시점에 이동거리에 1을 더하고, 기저조건에 달성했을 시, 지금까지 쌓아온 이동거리를 return하여 이동거리를 구합니다. 그런데 제가 보기에 두 로직의 차이는 사실상 없는데, 위의 코드로 제출을 하면 6%에서 틀려버립니다. 이 두 로직 사이에 어떠한 유의미한 차이가 생겨 결과를 바꿔버리는지 제 나름 생각해봤지만 저는 차이를 생각하지 못했습니다. 정답 코드와 이 코드 사이, 어떤 차이가 생겨 결과가 바뀌어버렸을까요? 감사합니다. 그리고 새해 복 많이 받으세요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-G 누적합 이분탐색으로 푼 코드 올려봅니다!
https://www.acmicpc.net/source/88024687
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
제 코드 좀 봐주세요
4,5번이 오류가 뜨는데 원인을 모르겠습니다..왼쪽, 오른쪽 값 비교해서 증가수열 구하는거는 비슷한거 같은데 말이죠...n = int(input())a = list(map(int, input().split()))tmp = min(a[0], a[-1])s = smp = '' # 문자열 임시변수, 문자열 중 가장 큰 값 변수cnt = cntmp = 0 # 길이 임시변수, 길이 중 가장 큰 값 변수while len(a) > 0: if tmp <= a[0] and tmp <= a[-1]: i = a.index(min(a[0], a[-1])) tmp = a[i] a.pop(i) cnt +=1 if i == 0: s += 'L' else: s += 'R' #print(a, cnt, s, tmp) elif tmp <= a[0] or tmp <=a[-1]: i = a.index(max(a[0],a[-1])) tmp = a[i] a.pop(i) cnt+=1 if i== 0: s +='L' else: s+='R' #print(a, cnt, s, tmp) else: if cntmp < cnt: cntmp = cnt smp = s cnt = 0 s = '' i = a.index(min(a[0],a[-1])) tmp = a[i] cnt+=1 if i == 0 or len(a) == 0: s += 'L' else: s+= 'R' a.pop(i) #print(a, cnt, s, tmp) print(cntmp)print(smp)
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
해시 충돌에서 링크드 리스트말고 해시테이블을 이용해서 구현하지 않는 이유가 있을까요?
1. 현재 학습 진도3-7강 해시 -1 2. 어려움을 겪는 부분이해한 내용 : 해시 테이블에서 해시충돌이 일어날 경우, 링크드 리스트를 이용하는 부분과 그 구현까지는 이해하였습니다!질문 : 해시테이블 내부에서 링크드리스트가 아니라 해시테이블을 또 쓰면 안되나요? 그러면 시간 복잡도가 O(1)*O(1) 이여서 훨씬 빠를 거 같은데, 왜 이렇게 안 구혔했는 지 궁금합니다. (저는 링크드리스트가 O(1) * O(n)으로 더 느리다 생각했습니다.)
-
미해결김영한의 실전 자바 - 중급 2편
성능 비교 비동기 처리돼요 이상해요
비동기 처리돼요
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
3주차 병합정렬 해결방법
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊 merge 함수에 return이 빠진거같습니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문 있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/1f41e2f112004e30a2675ecfa882bc51 다음과 같이 코드를 작성했는데, 계속 런타임 에러가 떠서, 혹시 이유를 알 수 있을까요?
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
노드간 거리 계산
강의 영상마다 질문이 있으면 언제든 그리고 바로 질문 남겨주세요! 질문할 때 가장 정확하게 이해할 수 있습니다.해당 영상과 관련된 질문들을 해주실 때 제가 가장 정확히 답변 드릴 수 있습니다!취업 전반의 상담이나, "제 코드가 왜 틀렸는지 알려주세요"와 같이 광범위한 질문은, 질문자의 상황에 따라 답변이 달라질 수 있기 때문에, 정확한 답변을 드리기가 어렵습니다 :(이런 분들을 위해서는 멘토링 항목으로 별도 제공하고 있으니, 다음 링크를 참고해주세요!이 링크를 통해서는 본인의 코드가 왜 틀렸는지 모를 때 질문을 주셔도 좋고, 취업 전반(면접 준비, 자소서, CS 면접 등)에 관련한 질문을 주시면 답변 드리겠습니다 :)"이 질문은 해도 되나?"라는 생각이 드신다면 우선 남겨주세요! 제가 답변 드리기 어려운 건 멘토링에 올려 달라고 재요청 드리겠습니다 🙂좋은 강의 감사합니다.노드간의 거리를 계산하는 유형을 정리하실 때 "DFS의 인자에 count 변수를 전달하는 방식" 에 대해서 말씀해주셨습니다. 제가 이해한 바로는 사이클이 없는 구조, 즉 u와 v간의 경로가 하나만 존재할 경우에만 유효하다는 생각이 듭니다. 혹시 제가 오해한 부분이 있다면 알려주시길 바랍니다.감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
bfs와 조합을 사용해서 풀어보았는데 어느 부분이 문제인지 잘 모르겠습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.bfs와 재귀를 활용한 조합을 사용해서 문제를 풀어보았는데 어느 부분이 문제인지 잘 모르겠습니다.코드리뷰 부탁드려도 될까요??http://boj.kr/7b47456f68a3412c8e20dab749b93a20
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
해상도 720p 라 글자가 흐릿하게 보입니다.
밝은 화면에서 폰트크기 마저 작은 편이라해상도는 1080p 는 나와야 코드가 잘 보일 거 같습니다.일부 영상은 1080p가 나오고 그외 영상들은 720p 까지만 나옵니다. 수강평으로 남길까하다 빠른 피드백 남기고자 질문으로 남깁니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-L DFS 재귀 vs. 반복문
안녕하세요, 큰돌님. 강의 잘 듣고 있습니다. DFS 재귀 vs. 반복문 구현 방법을 결정하는 기준에 대해 여쭙고 싶습니다. 제가 현재 고민중인 접근 방식은 다음과 같습니다:1. 완전 탐색(완탐) 문제의 경우 일단 재귀로 구현2. 엣지 케이스 테스트 시 메모리 초과(Memory Overflow) 또는 시간 초과(Time Overflow)가 발생하면 반복문으로 변경 코딩 테스트(코테)의 경우, 위와 같은 접근 방식이 적절할 지 조언을 부탁드리겠습니다.재귀로 풀면 쉽게 풀리는 걸 알았지만 DFS를 반복문으로 구현하면 디버깅이나 메모리 측면에서 유리하다고 알고 있어, 이번 문제를 오기로 반복문으로 접근하여 풀고자 했습니다. 그러나 결과적으로 재귀로 작성한 코드보다 성능이 낮게 측정되었습니다. 여러 최적화 끝에 다음과 같은 코드를 작성했는데, 큰돌님께서 작성하신 코드보다 메모리를 4KB 더 소모하고, 실행 시간이 26ms 더 느리게 측정되었습니다. 테스트 케이스에 따라 제 코드가 더 빠르게 동작할 수도있겠지만 결과적으로, 어떤 문제는 반복문으로, 어떤 문제는 재귀로 풀어야 적절할지 를 어떻게 결정하지? 가 의문으로 남아 질문드립니다! #include <bits/stdc++.h> using namespace std; const int dy[4] = {1, 0, -1, 0}; const int dx[4] = {0, 1, 0, -1}; int R, C; int grid[20][20]; inline bool is_valid(int y, int x) { return (0 <= y && y < R && 0 <= x && x < C); } int iterative_dfs() { stack<tuple<int, int, int, int>> st; int startMask = (1 << grid[0][0]); st.push({0, 0, 1, startMask}); int maxDepth = 0; while (!st.empty()) { auto [y, x, depth, used] = st.top(); st.pop(); maxDepth = max(maxDepth, depth); for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (!is_valid(ny, nx)) continue; int alpha = grid[ny][nx]; if (used & (1 << alpha)) continue; int nextUsed = used | (1 << alpha); st.push({ny, nx, depth + 1, nextUsed}); } } return maxDepth; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> R >> C; for (int i = 0; i < R; i++) { for (int j = 0; j < C; j++) { char tmp_c; cin >> tmp_c; grid[i][j] = tmp_c - 'A'; } } cout << iterative_dfs() << "\n"; return 0; }