묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
투포인터 시간복잡도
http://boj.kr/3e78cb0c919942b99e839ea6eb90dfa6 해당 코드에서 투포인터를 사용시 시간복잡도가n log n(퀵 sort) + n (while 문) 으로 제가 생각을 해봤는데 맞을까요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
구간을 나누어 조건부로 처리해보았습니다 크크
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String word = sc.next(); char chr = sc.next().charAt(0); System.out.println(solution(word, chr)); } public static String solution(String word, char chr) { String answer = ""; List<Integer> list = new ArrayList<>(); for (int i = 0; i < word.length(); i++) { if (word.charAt(i) == chr) list.add(i); } int index = 0; for (int i = 0; i < word.length(); i++) { if(i == list.get(index+1) && i!= list.get(list.size()-1)) index++; if(i < list.get(0)) answer += list.get(0)-i; else if(i == list.get(index)) answer += 0; else if(i > list.get(list.size()-1)) answer += i - list.get(list.size()-1); else answer += Math.min((i-list.get(index)), (list.get(index+1)-i)); answer += " "; } return answer; } }
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
조합 ? 문제 관련해서 질문 있습니다.
안녕하세요!문제를 풀다가 안돼는 부분이 있어서 질문드립니다.n개의 정수 중 r개를 뽑는 조합에 대한 총 경우의 수 문제인데테스트 케이스로 n = 30, r = 20 을 넣으면타임 아웃이 납니다. ide에서도 루프가 멈추지 않고요....다른 케이스는 통과하는데 이건 왜 안돼는지 모르겠습니다.1 <= r <= n<= 30import sys def ppopgi(arr, visited, start, depth, b): global count if depth == b: count += 1 return for i in range(start, len(arr)): if not visited[i]: visited[i] = True ppopgi(arr, visited, i+1, depth+1, b) visited[i] = False a, b = map(int, input().split()) arr = list(range(1, a+1)) count = 0 ppopgi(arr, [False]*len(arr), 0, 0, b) print(count)
-
미해결JavaScript 알고리즘 베스트 10
문제 풀이
안녕하세요!, 문제 8 ~ 11 까지 강의가 없는데 오류인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-P
제가 문제를 제대로 이해했는지 궁금합니다! 강사님의 설명을 보면 뭔가 제가 이해한 거랑 다른 것 같아서요... 이렇게 A와 B를 선택하고 둘 사이에 있는 사람들 중 키가 A보다 작거나 B보다 작은 사람들이 있으면 한 쌍이 있다고 해줍니다. 위 그림의 경우에는 제가 검정색으로 동그라미 친 경우 한 개가 A보다 작거나 B보다 작다를 만족합니다.그래서 제가 짠 코드는 다음과 같습니다. 물론 50만까지인 n을 생각하면 해당 코드의 시간복잡도는 시도조차도해선 안될 코드지만 강사님의 설명을 보니 제가 문제의 이해를 잘 못 한 것 같아서요..!http://boj.kr/6bca539f74534117843fb4d22dee1e43
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니당
function solution(m, arr){ let answer = 0; for (let i = 0; i < arr.length; i++) { let sum = 0; let index = i; while(sum < m) { sum += arr[index]; if (sum === m) { answer++; break; } else index++; } } return answer; } let a=[1, 2, 1, 3, 1, 1, 1, 2]; console.log(solution(6, a)); 이렇게 작성해도 될까요 ?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션7) 16.사다리 타기(DFS)
안녕하세요, 강사님!강사님 풀이법 외에 제 코드로 풀면 어느 부분이 문제인지 알고 싶습니다. import sys sys.stdin=open("input.txt", "r") #좌, 우를 우선 탐색하도록 설정 dx=[0,0,1,-1] dy=[-1,1,0,0] def DFS(x,y): #특정 지점(2)에 도착하면 출발점 반환 if x==n-1 and board[x][y]==2: print(start) else: for i in range(4): xx=x+dx[i] yy=y+dy[i] if 0<=xx<n and 0<=yy<n and board[xx][yy]==1: board[xx][yy]=0 DFS(xx,yy) board[xx][yy]=1 if __name__=="__main__": n=10 board=[list(map(int, input().split())) for _ in range(n)] # 값이 1인 출발점을 찾기 for j in range(n): if board[0][j]==1: start=j DFS(0,j)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 모범코드와의 차이점?
http://boj.kr/93da507ac8fa4b23a18ae6d3958a9095 저는 visited 배열을 사용하지 않고 1부터 n까지의 각 Vector에 영향을 주는 컴퓨터들의 노드 번호를 push한 이후에 1부터 n까지 n회 dfs를 하는 로직을 사용했고, 역시나 강의에서 말씀하신 대로 시간초과가 떴습니다. (Worst O(n^2)) (제 dfs 함수는 루트 노드를 제외한 노드의 개수, 즉 here 기준 자식 노드들의 개수를 구하는 함수입니다.)그런데 선생님 모범 코드와 다른 게 무엇인지 잘 모르겠습니다. 모범 코드도 1 ~ n까지 dfs를 n회 돌리면서 (루트 노드 포함) 자식 노드의 개수를 구하는 것 같은데 시간 초과가 나지 않는 이유가 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 68~69p 질문
fill()함수로 전체 초기화를 하지 않고 8*8 정사각형만 초기화했을 때 문제점인데문제점의 원리가 잘 이해되지 않습니다.. 어떻게 이해하면 될까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
왜 틀렸는지 모르겠습니다 ㅠ
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); long long int N, M, low=1, high=0, ret=__LONG_LONG_MAX__; cin >> N >> M; vector<long long int> color; for (int i=0;i<M;i++){ long long int temp; cin >> temp; color.push_back(temp); high=max(temp,high); } while(low<=high){ long long int mid=(low+high)/2; long long int cnt=0; for (long long int &i:color){ cnt+=i/mid; if (cnt%mid) cnt++; } if (cnt>N){ low=mid+1; } else{ ret=min(ret,mid); high=mid-1; } } cout << ret; }강의를 듣기 전에 먼저 풀어보고 계속 틀려서 강의에서 나온대로 어느정도 수정했는데도 틀리는데 이유를 모르겠습니다...!
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
4. 완전탐색에서 3. 멘토링 문제 문의
안녕하세요. 제가 문제를 정확하게 이해를 못한건지 이상한 부분이 있어서 문의 드려요. 답이 (3, 1), (3, 2), (4, 2)와 같은 결과를 만들 수 있다고 되어있는데, arr[2]번째 케이스에서는 해당이 되지 않는걸로 보여지는데 잘못 이해한 걸까요?arr[0]번째 케이스 => 3번 멘토 1등, 1번 멘티 3등 (조건 성립)arr[1]번째 케이스 => 3번 멘토 2등, 1번 멘티 4등 (조건 성립) arr[2]번째 케이스 => 3번 멘토 4등, 1번 멘티 3등 (조건 성립 X)let arr = [ [3, 4, 1, 2], [4, 3, 2, 1], [3, 1, 4, 2] ];
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-N 컴파일에러 원인을 모르겠습니다ㅜㅜ
안녕하세요 큰돌님 3-N 백준 9934번문제 컴파일에러 이유를 못찾겠습니다예약어등을 쓴것도 아닌것같은데 원인을못찾겠네요 ㅜㅜhttp://boj.kr/3bdacb3dfc12466d9f24d5716a194bc7
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
완전탐색 강의 1090번 문제 풀이 방법 의문
완전탐색 강의 마지막 문제 1090번 문제 풀이 방법에 의문이 생겨서 질문 올려봅니다. 강의에서는 우리의 집 중에서 한 곳에 모이면 된다고 풀이를 하셨는데, 예시에 나온 4 15 14 15 16 14 15 16 154명이 모이기 위한 최적의 장소는 (15,15)입니다. 백준에서도 이것이 정답 좌표이고. 그래서 혹시 제가 1번 2번 3번 아이디어를 이해하는데에서 잘못 이해한 부분이 있을까 싶어 질문을 올립니다.(15 14) (15 16) (14 15) (16 15) 중에 하나에 모인다는 말이 아닌것인가요?
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요 ㅠㅠ 질문 있습니다
안녕하세요~ 이제 코테 처음 시작하는 코린이인데요..궁금한 점 2가지가 있어서 답변해줬으면 합니다 ㅠㅠ1. 문제를 푸는 과정 중에 본인이 짠 코드 퀄리티가 많이 떨어지더라도 그 코드가 정답이 되면 그래도 괜찮은지? (물론 답안과 비교해가며 피드백은 필수겠지만요)2. 문제를 풀어주신 답안에서 쓰인 여러 메소드들은 외워두는게 맞는지? 아니면 검색을 이용해서 사용할 줄만 아는 정도인지?에를 들어 문제 1-01에서 str.toUpperCase(), Character.toUpperCase(t), str.toCharArray() 이런 메소드들을 무조건 손에 익을때까지 외워서 사용할줄 알아야 하는지??정 외우기가 힘들면 어떻게 코드가 돌아가는지.. 사용방법만 알고 이러한 문제상황에 맞는 활용 메소드들을 검색(구글링)을 통해 찾을 줄 알아야 하는 역량이 필요한지 궁금합니다 ㅠㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
냅색알고리즘(최대점수 구하기)질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 입력값 n과m의 최대가 (50*300 = 15000)이라서 브루트포스 (15000 * 15000 = 1억초과)를 사용하지 못하는 건가요???
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-K
http://boj.kr/0c9ea4ffa5e64ce7bf51a4dc46644c4f 런타임 에러가 나는데 이유를 도통 모르겠습니다 ㅠㅠ..... 제 견문을 넓혀주실 수 있나요 큰돌님...
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-F 문제 사고방식 질문
안녕하세요.선생님의 풀이 설명 중 위 사진 부분에서 누적합으로 계산이 되는 방식이 아무리 해도 이해가 가지 않습니다.경우가 앞에부터 계산 or 뒤에부터 계산 두가지뿐이라고 하셨는데,3 + (8*5-2) 와 (3+8*5) - 2 같이 3개 이상의 숫자가 괄호로 묶인 것도 계산이 되나요?차례차례 재귀의 호출 순서대로 그려봤는데 숫자가 3개까지는 가능할 것 같은데 4개부터는 재귀 호출 흐름이 복잡해져서 이런 사고를 어떻게 해야 하는지 모르겠습니다.이 부분에 대해 좀 더 자세한 설명 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
재귀함수 부분에서 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. combi함수의 매개변수로 start를 받는데 그 start변수를 사용할 때 반복문에서 +1로 주는 이유가 무엇인가요?그렇게 됨으로써 메인 함수에서 변수를 넣어줄 때 시작 부분을 0이 아닌 -1로 넣어주게되지 않나요?그리고 이 함수에서 start 매개변수를 왜 받는 것인가요? 조합을 위해 만든 함수면 n값과 k값만 알면 되지 않나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-C 코드 질문
안녕하세요 큰돌님. 좋은 강의 감사드립니다.https://www.acmicpc.net/source/655084113-C 답안코드를 보고 제 나름대로 조금 수정해서 작성해보았는데 계속 틀렸다고 뜨네요...로직은 거의 동일한 것 같은데 어느부분에서 반례가 생길 수 있는지 잘 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-J
비트마스킹에서 큰 어려움을 겪고 있는 한 학생입니다...위 코드를 제가 제대로 이해했나 궁금해서 질문드립니다.k를 구하는 이유: s의 비트를 확인하기 위해선a와 같은 2차원 배열일 땐 확인을 할 수 없어서 일차원으로 풀어주기 위해서 k를 구하는 걸까요? 위 코드에서 처럼 적으면 모든 경우를 구할 수 있다고 하셨는데 혹시 한번만 더 풀어서 설명해주실 수 있을까요..? 개념 강의를 계속 돌려봐도 뭔가 시원하지가 않습니다!ㅠㅠ