묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - H 수학문제
https://www.acmicpc.net/source/85152489BigInt로 정렬해서 풀었는데 틀렸다고 나오더라구요 ㅜ3%에서 틀리는데 왜 틀리는지를 모르겠습니다 ㅜ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - E 풀이까지 가는 생각
항상 그리디가 어려웠는데 오랜만에 풀어보니 답은 맞는데, 뭔가 이게 맞나라는 생각이 너무 들어서 생각 흐름이 맞는지 질문드립니다!블로그에 개인적으로 정리한 글이라 반말인점 무시해주시면 감사하겠습니다 ㅠ 무식하게 하기엔 범위가 10만이고 범위가 존재해서 그리디가 생각났다. 우선, 위 사진처럼 생각해봤다. 순서 정렬은 start 시간 기준으로 하는게 맞다. 왜냐하면 회의 시간이 짧은 걸로 sort 하면 100000에 시작하고 100001로 끝나는 게 처음에 배치되기 때문이다. 끝도 의미가 없으니 시작으로 순서 정렬을 잡았다.그럼 어떤 예외가 있을까 싶었는데 사진의 맨 위에 엄청 긴 선 같은 부분이 문제다. start가 가장 작으니 배열의 처음에 위치하기 때문이다. 따라서if (prev_s < s && e < prev_e)위와 같이 이전 값의 사이에 현재 해당 값이 존재하면 (이전 = 긴 선, 현재 = 긴 선 다음으로 start가 빠른 선) 면적은 줄지만 다른 회의가 잡힐 공간 자체는 늘어나게 되니 무조건 이득인 것이다. 따라서 저럴 땐, 이전 친구를 pop해주고 현재 친구를 push 해줬다.이외에 이전의 끝과 현재의 시작이 겹치거나 더 크면 회의실을 잡을 수 있으니 push 해준다. 반대의 경우는 회의중이기 때문에 회의실을 잡지 못하기 때문에 따로 push 해주지 않는다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문있어요
http://boj.kr/5bd8b854c5154aa3bebd77b37b07b8a1시간복잡도는 O(n*comp)으로 보이고 메모리도 넘지 않는 것 같은데 예제들은 정상 작동하면서 제출할때는 틀렸다고 나옵니다. 반례가 무엇인지 도저히 모르겠습니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
7강 RGB 색칠하기 질문 있습니다.
// 아래 풀이법에서 제시해주신 풀이법과 비슷하게 풀이한 것 같으나 백준에서는 자꾸 45% 쯤에서 오답처리가 됩니다 ㅜㅜ... 제 알고리즘에 어떤 문제가 있는 걸까요... #include <iostream> #include <vector> using namespace std; int N; vector<int> R; vector<int> G; vector<int> B; int dp[1001][3]; void Input() { cin >> N; for(int i = 0; i < N; i++) { int r, g, b; cin >> r >> g >> b; R.push_back(r); G.push_back(g); B.push_back(b); } } void DP() { dp[0][0] = R[0]; dp[0][1] = G[0]; dp[0][2] = B[0]; for (int idx = 1; idx < N; idx++) { for (int rgb = 0; rgb < 3; rgb++) { if (rgb == 0) { dp[idx][rgb] = min(dp[idx - 1][1], dp[idx - 1][2]) + R[idx]; } else if (rgb == 1) { dp[idx][rgb] = min(dp[idx - 1][0], dp[idx - 1][2]) + G[idx]; } else if (rgb == 2) { dp[idx][rgb] = min(dp[idx - 1][0], dp[idx - 1][1]) + B[idx]; } } } int minVal = INT16_MAX; for (int i = 0; i < 3; i++) { if (dp[N - 1][i] < minVal) { minVal = dp[N - 1][i]; } } cout << minVal << endl; } void Solve() { DP(); } int main() { Input(); Solve(); }
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
11726 런타임 질문
안녕하세요 강사님, 백준 11726번 관련 질문 드립니다. 노션에 나온 정답지는# input N = int(input()) # solve dp = [0] * (N + 2) dp[1] = 1 dp[2] = 2 for n in range(3, N + 1): dp[n] = (dp[n-1] + dp[n-2]) % 10007 print(dp[N]) 으로 되어있습니다.그런데 강의에서는 dp = [0] * (N + 2)부분이 dp = [0] * (N + 1)로 되어있습니다. 백준에 dp = [0] * (N + 1)로 제출하면 런타임 에러가 발생하는데,그 이유를 알 수 있을까요?dp[N]까지 접근하는건데, 0번째 인덱스를 고려한 N+1이아닌, N+2는 왜 필요한지 모르겠습니다.(강의나 노션에 추가 설명이 보이지 않아서 여쭤봅니다) 감사합니다.
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
추천문제 2667번 질문이 있습니다.
import sys sys.setrecursionlimit(10000) input = sys.stdin.readline N = int(input().rstrip()) graph = [list(map(int, input().rstrip())) for _ in range(N)] dy = [-1, 1, 0, 0] dx = [0, 0, -1, 1] visited = [ [False] * N for _ in range(N) ] distances = [] def dfs(y, x): stack = [(y, x)] distance = 1 while stack: cy, cx = stack.pop() for i in range(4): ny = cy + dy[i] nx = cx + dx[i] if 0 <= ny < N and 0 <= nx < N: if graph[ny][nx] == 1 and not visited[ny][nx]: visited[ny][nx] = True stack.append((ny, nx)) distance += dfs(ny, nx) return distance for i in range(N): for j in range(N): if graph[i][j] == 1 and not visited[i][j]: distances.append(dfs(i, j) - 1) print(len(distances)) for d in sorted(distances): print(d)이렇게 제가 풀어봤는데요, 예시 입출력은 잘 나오는데 백준에 제출하면 틀렸다고 나오네요.어느 부분에서 반례가 있는 것일까요?
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
1강 시간복잡도 중간에 중첩for문 직전에 상수는 상관없어요 하신 부분이 이해가 안됩니다
중첩 for문은 오래걸리는거 알겠는데 앞전에 상수? for문이 별도로 3개 있던 부분에서 상수는 상관없다고 한 부분이 무슨뜻인지요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include <bits/stdc++.h> using namespace std; int n,m, visited[51][51], ret = 0; char a[51][51]; const int dy[] = {-1,0,1,0}; const int dx[] = {0, 1,0,-1}; void bfs(int y, int x){ queue<pair<int,int>> q; memset(visited, 0, sizeof(visited)); visited[y][x] = 1; q.push({y,x}); int cnt = -1; while(q.size()){ tie(y,x) = q.front(); q.pop(); for(int i =0; i< 4; i++){ int ny = y + dy[i]; int nx = x + dx[i]; if(ny < 0 || nx < 0 || ny >= n || nx >= m || a[ny][nx] == 'W' || visited[ny][nx]) continue; visited[ny][nx] = visited[y][x] + 1; q.push({ny,nx}); ret = max(ret, visited[ny][nx]); } } return; } int main(){ cin >> n >> m; for(int i =0; i<n; i++){ for(int j =0; j <m; j++){ cin >> a[i][j]; } } for(int i =0; i<n; i++){ for(int j =0; j <m; j++){ if(a[i][j] == 'L' && visited[i][j] == 0){ bfs(i,j); } } } cout << ret-1 << "\n"; return 0; }안녕하세요 선생님 제가 풀었던 문제인데 if(a[i][j] == 'L' && visited[i][j] == 0){ bfs(i,j); } visited[i][j] == 0 이분분 때문에 자꾸 틀렸다고 나옵니다. 생각 해봐 없어서 되긴 하지만 있었도 문제가 없지 않나요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
정수론 약수 빠르게 구하기 질문
문제 2. 약수 빠르게 구하기 ( #1978, #11653, #14232 )15 # 숫자 n 2 # 숫자n의 약수의 개수 3 5 # 숫자n의 약수들해당 파트에서답이 위와 같다고 하셨는데, 15의 약수는 1, 3, 5, 15로 4개 아닌가용??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 맞왜틀 질문드립니다!
http://boj.kr/e89b80b1d57b459f8b5e7bbeb1ff1dc2 강의를 보지 않고 풀었을 때 완벽히 푼 거 같고 예시도 다 통과하는데 77%에서 틀렸다고 뜹니다.. 뭐가 잘못된 건지 궁금합니다..!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-O 반례나 풀이오류를 알 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.자바입니다..백준 질문게시판과 강의 커뮤니티의 반례는 다 성공했습니다.https://www.acmicpc.net/source/share/2972691d0fcd4550a0389bb53efe4391
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-V 질문있습니다
go라는 함수에서 ret을 -1e6으로 초기화 해야하나요?왜 -1은 안되는것일까요?0은 모금액 0일 수도 있기 때문에 가능하다고 납득이 됩니다. 하지만 문제에서 모금액은 1,000,000 이하의 자연수들이라는 조건이 있어서 음수가 나올 수가 없다고 생각합니다.최소 -1,000,000 해야 정답 처리되더라구요 너무 궁굼해서 질문 올립니다.
-
해결됨김영한의 실전 자바 - 중급 2편
노드와 연결1 - 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 궁금증이 생겨 질문을 남깁니다.노드와 연결1 노드를 배우면서 스트링 빌더의 append메서드가 생각이 났습니다.그래서 중급1편에 배운 append메서드에 대해서 찾아보고 작동 방법에 대해서 찾아보고 자기 자신을 참조해서 스트링 빌더가 돌아가는것을 확인을 할수가 있었습니다.이런 것 을 보고 노드가 '스트링 빌더 에서 파생된 작품?(응용) 아닌가' 라는 생각이 듭니다. 그래서 여기서 질문이첫 번째노드가, 스트링 빌더나, 메서드 체인닝 기법에서 파생된 작품인가요? 두 번째스트링 빌더의 apeend의 this와, node의 new의 차이점이라고 할까요? 이런 것이 어떻게 다른지 비교해서 가르켜 주시면 안될까요?뭔가 대조 되는 게 있는 것 같아서, 혹 이 두가지 가 대조가 가능하다면 대조 설명을 해주시면 감사하겠습니다. 추가1다음 강의 에서 toString할때 스트링 빌더 및 append메서드가 나와서.. 좀 당황스럽기는 한데. 이거 때문에. 생각 난 것은 아닙니다. 중급1편에서 스트링 빌더를 공부할 때sb.append(내용).append(내용).append(내용);first.next.next = new Node("C"); 이거랑 비슷해서 생각이 난거 입니다. 그래서 중급1편의 코딩 내용들을 뒤져본거고, pdf도 뒤져봤습니다.증거 사진 이요.. 답변 부탁 드립니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
브루토 포스 백준 1342 질문
s = list(input())n = len(s)choose = []check = [False] * len(s)ans = []def check_ad(s): for i in range(len(s)-1): if s[i] == s[i+1]: return False return Truedef make(level): if level == n and check_ad(choose): result = ''.join(choose) if result not in ans: ans.append(result) for i in range(n): if check[i]: continue choose.append(s[i]) check[i] = True make(level + 1) choose.pop() check[i] = False make(0)print(len(ans)) 안녕하세요 강사님! 위 코드는 시간 초과가 나는데 순열 강의 알고리즘을 그대로 사용한 것입니다! 강사님의 순열 코드는 시간 초과가 안나는데 왜 이거는 시간초과가 날까요? 내장된 permutation이 효율적으로 구현된 것일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - L 시간 초과
안녕하세요 큰돌님! 오랜만에 질문드립니다!http://boj.kr/ffa51980cf4e43d78718101ba7fea04f위 코드는 시간 초과 없이 맞는 코드고http://boj.kr/e3c9471b62724bd9819cc038d6127c47위 코드는 시간 초과가 64%에서 생기는 코드입니다 로직적인 차이도 없는 거 같고 빠르다 해도 이진 트리 map이 아닌 해시값 기반인 unordered_map이 더 빠를 거 같은데, 왜 시간 초과가 나는 지 궁금해서 질문드립니다!
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
그리디 챕터 들어가며 파트 내용이 이상하네요
비선형 자료구조에 대한 내용이 나오는 것 같은데, 의도하신 것인가요...?
-
미해결더 개발자, 인터뷰 가이드
강의 자료
안녕하세요 백기선 강사님. 강의자료 강의에서 구글 닥스 링크가 사라져서 문의드립니다. 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-m
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 저는 이 문제를 조합으로 풀려고 시도했는데 조합으로 풀 수가 없나요??다른 분들 풀이를 보니까 순열로만 푸시는데 조합으로는 풀 수 있는지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-L 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 시간 복잡도 3의 26승으로 말하셨는데 어떻게 3의 26승이 나온건가요??? 시간 복잡도 계산은 어떤 강의를 다시 보면 되나요??
-
미해결자바 코딩테스트 - it 대기업 유제
다익스트라 + 환승횟수
최소 비행료 문제를 PQ를 사용해서 다익스트라처럼 풀되, 조건문으로 환승 횟수를 체크하는 방식으로 해도 정답이 되나요?그리고 이 방식도 괜찮은가요?