묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드가 더 효율적이죠?
앞 강의인 바둑이 승차 영상을 보며 떠올렸습니다.n,m = map(int,input().split()) data = [list(map(int,input().split())) for _ in range(n)] rst = 0 tot = sum(a for a,b in data) def dfs(num,s,t,tsum): global rst if tot - tsum + s < rst: return if t > m: return if n == num: rst = max(rst,s) else: dfs(num + 1,s + data[num][0],t+data[num][1],tsum+data[num][0]) dfs(num + 1, s, t, tsum + data[num][0]) dfs(0,0,0,0) print(rst)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8주차 개념강의 영화수집 질문드립니다
안녕하세요큰돌님 8주차 개념강의 영화수집 문제에 궁금한 점이 있어 질문드립니다!큰돌님의 코드와 동일한 로직으로 코드를 작성했는데 자꾸만 오답으로 떠서 원인을 찾던중에 아래와 같은 원인을 발견했습니다.제 코드int t,n,m,temp; int tree[200004]; map<int,int> mp;큰돌님 코드int t, n, m, tree[200004], temp; map<int, int> mp; 단지 전역변수(tree 배열) 선언 순서만 다른데, 오답으로 채점되었습니다. (큰돌님 코드에서 전역변수 순서만 바꿔도 오답으로 채점됩니다.)전역변수 선언 순서는 로직에 영향을 받지 않는다고 알고있었는데, 영향이 가는걸까요?제가 평소에도 전역변수를 선언할때, 배열은 배열끼리 분리해서 선언하는 습관이 있어서 이렇게 선언하였는데 이유가 궁금합니다!+ 추가적으로 왜 update_idx가 100001 이어야하는지 잘 이해가 가지 않습니다..😥update_idx가 100001이면 idx 100002부터 저장되는데,i가 1부터 10만까지이니까 그 다음번 인덱스인 100001부터 저장하면 안되는건가요?코드 : https://www.acmicpc.net/source/81853752문제: https://www.acmicpc.net/problem/3653
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
치킨집이 좌표의 갯수가 입력한 m보다 적을때는 고려하지 않아도 되나요?
5 50 0 1 0 0 0 0 2 0 1 0 1 2 0 0 0 0 1 0 0 0 0 0 0 2이런 입력값을 넣었더니 값이 987654321이 나왔습니다.이런 경우는 따로 처리 해주지 않아도 되나요?
-
미해결김영한의 실전 자바 - 중급 2편
정적 메서드 사용 시 public 여부
private 으로 사용하는 경우는 명확히 붙여주는거같은데 public 의 경우 붙이는 경우도 있고 안 붙이는 경우도 있는 것 같아서 질문드립니다. 혹시 기준이 있을까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
위치를 데스크톱에 두었는데 cmd+b로 빌드를 해봐도 결과값이 안 나옵니다..!
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 위치를 데스크톱에 두었는데 cmd+b로 빌드를 해봐도 결과값이 안 나옵니다..!1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의자신은 어떻게 이해했는지DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
좋은 풀이란 무엇일까요?
안녕하세요, 문제를 푸는 도중에 갑자기 궁금증이 생겨 질문 드립니다.4779 재귀문제를 푸는데, 예제 출력을 분석하지 않은? 상태에서 문제만 가지고 직관적으로 문제를 해결하려 했습니다.먼저 선을 만들고, 선을 3으로 나누면서 몫이 0이 되면 선을 리턴하고, 그렇지 않으면 계속 나누는 방법을 생각했습니다.def cantor(n): line = '-' * (3 ** n) def divide(part): if len(part) == 1: return part N = len(part) // 3 return divide(part[:N]) + ' ' * N + divide(part[-N:]) return divide(line) n = int(input()) result = cantor(n) print(result)강의에서는 예제 출력을 보고 케이스마다 공백이 있는 것을 확인하여 공백에 3^(k-1)을 넣어줘서 푸셨는데, func() + 공백 + func() 형식으로 recursive case를 푸는 방법은 전혀 생각이 안났습니다.경험이 많이 없어서 강의대로 푸는 방법이나 스킬을 익혀야 하는지, 아니면 직관적으로 푸는게 좋은지 궁금합니다.직관적으로 푸는게 나쁜건 아닌데 강의대로 푸는게 더 구현이 편한 것 같기도 해서 질문드려요.좋은 강의 감사드립니다 🙂
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-N 질문 있습니다.
4분 30초쯤에 log64부분이 이해가 안되는 사람은 시간 복잡도 관련되어서 보고 오라고 하셨는데 시간복잡도에서 재귀함수 관련돼서는 몇번 중복되느냐에 따라 ()^n의 복잡도를 가진다는 이야기만 있는데 혹시 다른 부분에 언급 되어 있을까요? 제가 못찾는 걸까요ㅠㅠ 어디 부분을 봐야되는 것일까요?왜 log2 64인지 이해가 잘 되지 않습니다ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-O 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/a5a4b9c232c94d43bbdb5a357da579fb안녕하세요!해당 문제 ' ( ' 이 들어오면 stack에 푸시하고 ' ) ' 이 들어올 경우' ( ' 인 경우 pop, cnt 2증가, / 2. 빈 스택이었을 경우 맥스 값을 갱신하고 cnt=0으로 설정해주었습니다틀렸다고 나오는데 어떤 반례가 있는지 궁금합니다.. 또한 어떻게 고치면 좋을지 여쭤봅니다 감사합니다 ^^
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 되나요?
n,k = map(int, input().split()) data = list(map(int, input().split())) m = int(input()) cnt = 0 def dfs(l,s,c): global cnt if l == n: if c == k: if s % m == 0: cnt += 1 return dfs(l+1,s+data[l],c+1) dfs(l + 1, s, c) dfs(0,0,0) print(cnt) 이렇게 풀어도 되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-J 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.https://www.acmicpc.net/source/81782607여기서 제가 짠 코드처럼 입력받는 반복문을 돌릴때입력을 받고, 그 값을 비교하여서 바로 그 Y,X 위치에 값을 대입하는 것은 안되는 건가요?!입력, 거리 값 대입 반복문 두개를 돌리는 코드로 설명하셨는데혹시 이유가 있나해서 여쭤봅니다!
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
BOJ1461 제일 먼 곳은 가장 나중에 가는 것이 이득아닌가요?
먼 곳을 먼저가게 되면 돌아오는 만큼의 거리를 손해보게 되는데 가장 먼 곳을 나중에 가는 게 이득이 아닌가해서 질문을 남겨봅니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 교본 중 lower_bound() 함수 질문드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요main함수 2번쨰 라인질문입니다.제 사고과정에서는 첫번쨰, lower_bond함수가 이터레이터를 반환하고두번쨰, 그걸 역참조해서 요소값(=3)이 됐고세번쨰 , 그 요소값의 주소를 한게 &* 연산이니까 메모리 주소끼리 뺴면 8이라고 생각했습니다.(int형 4바이트씩 2칸 차이이므로)왜 인덱스차이인 2로 나왔는지 추가 설명좀 부탁드립니다 큰돌님 ps) 아래처럼 출력햇을떄 주소값으로 나오는거까지 확인햇는데주소값끼리 뺏는데 어떻게 인덱스차이인 2가 나오는지 궁금합니다 ( int형 4바이트 * 2 해서 8이 아닌..)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
while문을 돌릴때 s.top이 나오는 방식에 대해 설명 부탁드립니다.
안녕하세요. 너무 기본적인 질문이지만 ㅜㅜ 이해가 가지 않아서 이렇게 질문을 드립니다.디버그를 돌려 보았을때 while문 안에서 s.top()을 찍어보았더니 0, 2, 1 이런 순서로 나왔습니다.그런데 이미 for문은 i 3번째 까지 모두 돌아간 상태인데ret[1]의 순서가 어떻게 다시 올 수 있는걸까요?ret[0] = a[1]ret[2] = a[3]여기까지는 이해를 했는데 ret[1] = ??? 이 부분이 이해가 가질 않습니다.너무 기본적인 질문인데 뜬금없이 이 부분이 이해가 가지 않아서 당황스러워 이렇게 질문 드립니다 ㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-T 질문있습니다
http://boj.kr/4b3abb45ebbc439d9e4c7f566089586e오큰수를 찾는 과정을처음부터 쭉 찾아나가다가 왼쪽에 나보다 작은수가 있다면 스택에 넣는다.나보다 큰수가 나온다면 스택에 저장된 크기만큼 해당 숫자를 출력한다.만약 나보다 큰수가 한번도 안나온다면 -1을 출력한다.의 과정으로 진행하였습니다.예시답안도 정상적으로 나왔는데 왜 틀린건지 어떤 논리적 오류가 발생했는지 궁금합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문있습니다
http://boj.kr/ecb100ac42614c8ea69e9d8d99a8d7c6트리를 스트럭트로 만들어서 삭제할때는 continue를 하게끔 구현했습니다.예제는 다 맞았는데 제출시 어떤부분에서 반례가 발생하는지 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 질문 있습니다
http://boj.kr/274cddfc8f7c407dbb80ceb768312ab4이렇게 풀었는데 백준에서는 맞다고 하는데 vscode에서는 계속 값이 출력이 안됩니다. 디버깅을 위해 while(cin >> n){ cout << "n 입력 : " << n; ret = 1; cnt = 1;이런식으로 해보아도 출력되는 것이 전혀 없는데 뭐가 문제일까요..? Dev-C++로도 출력이 안됩니다...!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이방식은 시간초과로 되지않을까요?
이방식은 예시는 잘 돌아가는데 추후 시간초과같은걸로 컷 엣지를 하지못해 틀린 답일까요?n = int(input()) data = list(map(int, input().split())) ch = [0]*n def dfs(num): if num == n: choose = 0 unchoose = 0 for i in range(n): if ch[i] == 1: choose += data[i] else: unchoose += data[i] if choose == unchoose: print("YES") exit() return ch[num] = 1 dfs(num+1) ch[num] = 0 dfs(num+1) dfs(0) print("NO")
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
타임에러가 왜 나타나는지 모르겠습니다
static void solution(Queue<Point> q, int[][] box) { while (!q.isEmpty()) { // int len = q.size(); // for (int i = 0; i < len; i++) { Point tmp = q.poll(); for (int j = 0; j < 4; j++) { int nx = tmp.x + dx[j]; int ny = tmp.y + dy[j]; if (nx >= 0 && ny >= 0 && nx < n && ny < m && box[nx][ny] == 0) { box[nx][ny] = 1; q.offer(new Point(nx, ny)); dis[nx][ny] = dis[tmp.x][tmp.y] + 1; } // } } } }위에서 주석처리된 queue의 사이즈를 구한 후 레벨 탐색(?)으로 진행하게 되면 타임에러가 발생하는데 왜 발생하는지 모르겠습니다. 성능 차이가 많이 나나요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
완탐-원복 강의 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.1.해당 강의 4:26초에서 1과 인접한 노드는 0과 2뿐이라고 말하셨는데 3도 인접한 노드 아닌가요?? go함수내에 있는 go함수의 동작이 모두 끝난후 원복에 관한 코드를 보면 노드 2를 0상태, 즉 방문하지 않은 상태로 돌리고 v벡터에서 제거하는 동작까지는 이해를 했습니다. 하지만 그 이후에 3이 다시 들어가는 원리를 이해 못하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
런타임 에러 질문있습니다!
강사님 강의듣기전에 혼자서 문제를 풀어보았는데, 인덱스 범위 에러인지 런타임 에러가 자꾸 뜹니다 ㅠ몇번 다시 보았지만 찾기가 힘들어서 문의남깁니다!https://www.acmicpc.net/source/81750296