묻고 답해요
154만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4 - J 맞왜틀 질문있습니다.
처음에는 감조차 못잡다가, 가로세로 힌트를 듣고 어떻게 구현을 하긴 했습니다.그런데 Test Case는 전부 맞는데 제출을 했을때 0퍼에서 틀려버립니다.이유를 모르겠습니다...http://boj.kr/edf18c4b49134e13b67c75f324ea9dc9감사합니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
헤드노드에 관해..
계속 그리면서 이해하다가 딜레마에 빠져 질문드립니다 ..새 노드 추가할때의 그림을 그려보며 이해중이였는데,else{pNewNode->pNext = g_pHeadNode;g_pHeadNode = pNewNode;}이 코드는 이미 헤드노드가 가리키는 '원래노드'가 따로 있는건데그렇다면 pNewNode의 pNext엔 헤드노드 주소값을 넣으면pNewNode는 AddNewNode에서 초기화된 각자의 멤버값을 가지면서 pNext를 따라가면 헤드노드가 나오게 되고, 그 헤드노드의 pNext를 따라가면 '원래노드'가 나오게 되는데그 상태로 g_pHeadNode = pNewNode; 를 수행하게 되면 헤드노드에 pNewNode값이 오버라이트되게 되는건데 그럼 이 상황에선기존헤드노드에 뉴노드멤버들의 값들과 pNext엔 헤드노드의 주소값, 이걸 따라가면 뉴노드멤버들의 값들과 pNext엔 헤드노드가 가리켰던 '원래노드'의 주소값, 이걸 따라가면 '원래노드'멤버들의 값과 pNext값 . . . 이렇게 생각하면 되는건가요 ?그럼 결국엔 이 상황에선 g_pHeadNode와 pNewNode는 pNext를 제외한 모든 멤버변수들이 같은값을 가지고 있는 상황인거라고 해석하면 되는건가요 ? ( 뭔가 3개의 노드가 다 다른 멤버변수값을 가져야할것만 같은데, 2개의 노드가 같은 멤버변수값을 가지는거같아 이상하여 이해한게 맞나, 아니면 개념을 잘못잡은건가 싶어 질문드립니다 )질문이 길어져 죄송합니다 . . .
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-F 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 비트마스킹의 허우적 거리고 있습니다. 예시를 들고 계신 부분(영상 3:19초)에서 abc 를 비트마스킹한 값을 배열에 저장해뒀다가 완전 탐색하면서 비트마스킹(7) == 경우의 수?(7)이 같으면 이것은 가능한 경우의 수라는 뜻인가요?? 1주차 2주차 3주차는 시간이 지나도 다르게 풀기도하고 하는데 이 비트마스킹은 벽을 느끼고 있습니다. 어찌해야 될가 답답하네요 ㅠㅠ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드리뷰 부탁드립니다.
Map과 for문으로 풀이를 했는데, 코드리뷰 부탁드립니다. function solution(arr) { let sumSet = new Map(); for (let i = 0; i < arr.length; i++) { let sum = 0; for (let j = 0; j < String(arr[i]).length; j++) { sum += Number(String(arr[i])[j]); } sumSet.set(arr[i], sum); } let maxVal = 0; let maxKey = 0; for (const [key, value] of sumSet) { if (value > maxVal) { maxKey = key; maxVal = value; } else if (value === maxVal) { if (key > maxKey) { maxKey = key; maxVal = value; } } } return maxVal; } console.log(solution([128, 460, 603, 40, 521, 137, 123]));
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4 - B 질문있습니다.
다행히 강의를 듣고 문제를 풀긴 했습니다.하지만 하나의 의문이 풀리지 않아 질문을 올려봅니다. 이 문제의 요점은 다음과 같다고 저는 생각합니다.1. 결론적으로 우리가 보고싶은것은 BF를 통해 모든 행과 열을 순회하면서 뒤집을 때의 결과를 체크하고 최소값을 구하는 것이다. 하지만 이것은 2^40이기에 시간범위를 넘어선다.2. 그러므로 2^40을 피하기 위해 모든 행들을 순회하면서 뒤집은 한 다음, 모든 열을 뒤집는 대신 T가 많은 열만 뒤집음으로서, 2^20 * 2^20 대신, 2^20 + @로 줄일 수 있다.그런데 이렇게 할거면 행 역시 완전탐색인 2^20을 피하기 위해 T가 많은 행만 뒤집을 수 있지 않을까 라는 생각이 계속해서 드네요. T가 많은 행 만을 뒤집었을때 답이 틀리게 나오는걸 보면 분명 무슨 이유가 있을건데, 반례가 떠오르지 않고 찝찝해서, 행과 열 둘다 T가 많은 것만 뒤집었을때 답이 틀리는 원인이 궁금해 질문을 올려봅니다.>>간단하게 생각하시면 됩니다.-> THT 라는 상황을 가정해볼게요.이 열 1, 2, 3 열에 대해 뒤집는 모든 경우의 수가 끝났습니다.이제 경우의 수는 이 행 -> 을 뒤집느냐. 아니면 안뒤집느냐. 라는 경우의 수밖에 없죠? 이 때 어떤 경우의 수가 최적의 수일까요?뒷면이 위를 향하는 동전 개수를 최소로 만드는 것이 가장 최적의 수 아닐까요?커뮤니티를 봤을 때 비슷한 질문에서 이런 답을 보았는데 이걸 읽어도 이해가 안되네요ㅠㅠ. 감사합니다.
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
재귀함수 질문
재귀함수에서 보통 베이스 케이스에 리턴이 있는 경우를 많이 봤는데 베이스 케이스 부분에 return 안쓰는거랑 return 쓰고 그 뒤에 비워놓는거랑 같은 건가요??예를 들어 이 두개가 같은건가요? (함수 안 부분 띄어쓰기해도 질문등록하면 다 왼쪽으로 정렬되서 보이네요ㅠ)함수1: def function()for _ in range(N):... 함수 2: def function()return for _ in range(N):...
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-K 질문있습니다.
http://boj.kr/7606eba320de41679c31fffb9ff36d31이 코드는 맞은 코드이고http://boj.kr/44198150718f45fbaa3c3bee07710833이 코드는 틀린 코드입니다. 두 코드에서 다른 부분이라고는 58번줄 if문에서 "n - m == 1" 이라는 조건이 들어가냐 마냐의 차이인데 저러한 조건이 없어도 모든 노드가 연결되기 위해서는 당연히 n - m == 1 조건이 만족되지 않나요?만족하지 않는다면 애초에 모든 노드가 연결 안되지 않나요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
강의자료에서
for x in range (1, k+1): # 가방 무게가 x일 때 # 물건을 담을 수 있을 때 (x보다 무게가 작거나 같을 때) if x < weight : dp[y][x] = dp[y-1][x] # 물건을 담을 수 없을 때 ( 전에 넣어뒀던 무게로 유지) else: dp[y][x] = max(dp[y-1][x],dp[y-1][x-weight] + value )이렇게 나와있는데, x < weight이면 물건을 못담을때 아닌가요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4 - A 질문 있습니다.
비트 마스킹, 정답이 없을 시 -1 처리, 같은 값을 가진 결과들끼리의 정렬, 최대 최소 범위 지정, 까지 했는데 8%에서 막혀 질문을 올려봅니다... http://boj.kr/879fef56c4584e6a85f2670b5166dd11 감사합니다.
-
미해결김영한의 실전 자바 - 중급 2편
인텔리제이 SDK 오류
인텔리제이에서 java-mid2 폴더를 열면 파일들이 안보이는데 SDK 오류 같습니다. 어떤 버전의 SDK 써야 오류 안나나요? 지금은 Eclipse Termurin 21.0.4 -aarch64 설정되어 있네요
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
TreeSet활용
TreeSet이 중복되지 않는 것을 사용해서 풀어봤는데 설명해주신 내용과 어떤 차이가 있는지 궁금합니다. 코드입니다. public static String solution(int a, int[] arr){ String answer = "D"; TreeSet<Integer> set = new TreeSet<>(); for(int x : arr){ set.add(x); } if (set.size() == a){ answer = "U"; } return answer; }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-c 코드 질문이 있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요! 큰돌님 다름이 아니라 해당문제를 잘 못 풀겠어서 큰돌님 풀이를 봤는데요저는 맨처음에 문제를 풀때 좌표를 벗어나는지와 구멍인지를 for문 안에서 체크했는데요for(int i = 0; i < 4; i++){ // 해당 좌표만큼 이동한다 int ny = y + dy[i] * value; int nx = x + dx[i] * value; if(!in(y, x) || b[y][x] == 'H') continue; ret= max(ret, down(ny, nx) + 1); }이렇게 제출하니까 틀렸다고 떴습니다. 왜 for문 안에 넣으면 안되는 걸까요?아래는 제출한 전체 코드입니다.#include <bits/stdc++.h> using namespace std; int t,a,d[54][54]; string s; char b[54][54]; bool check[54][54]; const int dy[4] = {-1, 0, 1, 0}; const int dx[4] = {0, 1, 0, -1}; // 좌표 내에 포함하는 지 체크한다 bool in(int aa,int bb){ return(1<=aa && aa<=t && 1<=bb && bb<=a); } int down(int y,int x){ // 이미 갔던 곳이라면 순회를 하는 코드이니까 -1을 출력하고 main함수 종료 if(check[y][x]){ cout << -1 << "\n"; exit(0); } //현재 좌표로 이동한 횟수 -> 이미 해당 위치에 숫자가 있다면 int &ret = d[y][x]; if(ret) return ret; check[y][x] = 1; int value = (int)b[y][x] - '0'; for(int i = 0; i < 4; i++){ // 해당 좌표만큼 이동한다 int ny = y + dy[i] * value; int nx = x + dx[i] * value; // 좌표를 벗어나거나 구멍이면 return 0 -> 갈 수 없음 if(!in(y, x) || b[y][x] == 'H') continue; ret= max(ret, down(ny, nx) + 1); } // 원복을 해준다 check[y][x] = 0; return ret; } int main(){ cin >> t >> a; for(int i = 1; i <= t; i++){ cin >> s; for(int j = 1; j <= a; j++){ b[i][j] = s[j - 1]; } } cout << down(1, 1) << "\n"; }
-
미해결자바 코딩테스트 - it 대기업 유제
송아지를 잡자
홀수 레벨만 본다고 했을 때 이전 홀수 레벨에서 방문한 노드를 이후 홀수 레벨에서는 왜 그냥 넘어가는 건가요?? 말씀하신 것처럼 송아지가 움직이니까 이전 홀수 레벨에서 만나지 않았더라도 이후 홀수 레벨에서 만날 수 있는 거 아닌가요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제를 풀 때 변수들을 전역변수로 선언하는 이유가 있나요??
객체지향 공부를 하다 보니 전역변수를 사용하는 것이 실제 사용과 상관 없더라도 잘 안 하게 됩니다. 수업에 보면 대부분의 변수들을 전역변수로 사용하시는데 알고리즘 공부할 때는 웬만하면 전역변수로 선언하는 것이 좋은 건가요? 변수 선언할 때 팁이 있는지 궁금합니다.
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
백준 1260 (DFS 와 BFS) 프린트 위치 질문
안녕하세요 🙂 bfs 에서 질문이 있는데 왜 프린트(print(idx, end = ' ')를 for loop 안에서 queue.append(i) 한 다음 프린트하지 않고 큐에서 팝할때 프린트 하나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 시간복잡도 질문 있습니다!
벽하나를 허물고 DFS를 반복해 풀이처음에는 이 풀이 방법이 떠올랐는데요벽의 개수가 어림잡아 250개고 벽을 허물고 모든 노드를 dfs를 250번을 돌아야하니 좀 비효율적인 느낌도 들고 시간 복잡도가 너무 커 안될 것 같다. 라고 느낌은 드는데요...점화식으로 초과한다!가 계산이 안되어서 고민입니다..그래야 빨리 포기하고 다른 로직을 생각할텐데 아마 시험볼때는 시간에 쫓기다보니 다른 생각을 못할 것 같아서요.. 어떻게 사고하는게 좋을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
학습 진도 관련해서 질문드립니다!
안녕하세요 기존에 파이썬으로 코딩테스트 공부 하다가, 큰돌님 유튜브 영상 보고 강의까지 입문하게 된 취준생입니다. 공부 계획을 짜던 중, 강의 순서가 주차 단위로만 나뉘어져 있고 일일 단위로는 안 나누어져 있어서 일일 계획을 짜기를 힘들어하고 있습니다.n주차 강의는 해당 주차에 끝내고 싶은데, 주차별로 일일 학습량에 대한 계산을 따로 해 두신게 있는지 궁금합니다.없다면 어떤 식으로 하루 공부량을 잡아야 할지도 조언 부탁드립니다!
-
미해결김영한의 실전 자바 - 중급 2편
배열도 리스트라고 할 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]<직접 구현하는 배열 리스트1 -시작 2:15초>리스트의 정의를 보았을 때, 순서가 있고 중복을 허용하는 자료구조를 리스트라고 한다. 배열: 순서가 있고 중복을 허용하지만 크기가 정적으로 고정됨. 리스트: 순서가 있고 중복을 허용하지만, 크기가 정적으로 변할 수 있음. 배열은 리스트에 포함이 되는 것 같기도, 안 되는 것 같기도 합니다..!정의를 보면 배열은 리스트에 포함되는 것 같고,리스트와 대조해보면 리스트가 아닌 것 같아요..! 배열도 리스트 자료구조인가요..?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
2133번 문제풀이 관련 질문
안녕하세요 선생님. 이전 두 질문에 대한 답변이 많은 도움이 되었습니다. 감사합니다.2133번 문제의 DP 1번 풀이에서 O(N^2) 풀이를 소개해주셨는데 아래와 같이 dp 테이블을 갱신할 때 sum_dp 테이블을 같이 갱신을 해주면 시간복잡도가 O(N)으로 줄일 수 있지 않나 싶어 질문드립니다.N = int(input()) if N % 2 != 0: print(0) else: n = N//2 dp = [1] * (n+1) sum_dp = [1] * (n+1) for i in range(1,n+1): dp[i] = sum_dp[i-1] * 2 + dp[i-1] sum_dp[i] = sum_dp[i-1] + dp[i] print(dp[-1]) 그리고 이건 다른 종류의 질문인데 혹시 그래프 부분이 실제로 코테에 많이 등장하나요? 제가 조금 급하게 준비하고 있는 상태라 이론을 필수 알고리즘2까지만 들어도 될지 아니면 그래프까지 다 들어야될지 고민중입니다. 조언 주시면 감사하겠습니다!
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2503 문제 제한 조건 질문!
두 번째, 세 번째 자리수의 0이면 안된다는 제한 사항은 없지 않나요? 이렇게 탐색하면 틀렸다고 나와서 질문드립니다!for a in range(1, 10): for b in range(10): for c in range(10):
주간 인기글
순위 정보를
불러오고 있어요