묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결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를 사용해서 다익스트라처럼 풀되, 조건문으로 환승 횟수를 체크하는 방식으로 해도 정답이 되나요?그리고 이 방식도 괜찮은가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 관련 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/107cd70e488446e3bcbfb27a8d33eff0제가 작성한 코드인데 벡터의 값이 계속 0으로 나오네요. flag라는 1과 0으로만 이루어진 배열로 next_permutation을 돌리면서 flag[i]의 값이 1인 경우에만 sum에 arr의 값을 더합니다. sum이 100이 되면 while문을 빠져나와서 vector에 저장되어있던 arr[i]를 모두 출력합니다. 42번째 줄은 sum이 100이 아닌 경우 vector에 저장되어있던 값들을 초기화 시키게 했습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
속도 측면을 고려해본 답안인데 어떤지..
숫자를 일일이 포문을 통해 소수를 구하는게 비효율적인 것 같아 다음과 같이 풀어봤는데,, 어떤지 의견이 궁금합니다. import java.util.Scanner; public class Main { public static void main(String[] args){ Main main = new Main(); Scanner sc = new Scanner(System.in); int number = sc.nextInt(); int[] numbers = new int[number]; for(int i = 0; i < number; i++){ numbers[i] = sc.nextInt(); } main.solution(number, numbers); } public void solution(int number, int[] numbers){ // get reversed array int biggest = 0; // get biggest number for prime int[] reversedArr = new int[number]; for (int i = 0; i < number; i++) { int tmp = numbers[i]; int res = 0; while (tmp > 0) { int t = tmp % 10; res = res * 10 + t; tmp /= 10; } reversedArr[i] = res; if (res > biggest) biggest = res; } // prime logic by biggest number boolean[] prime = new boolean[biggest + 1]; // add 1 for including 0 --> it means index number is same as each value; prime[0] = prime[1] = true; // true = non-prime number for (int i = 2; i*i <= biggest; i++){ if(!prime[i]){ for (int j = i*i; j <= biggest; j += i){ prime[j] = true; } } } //get result for (int i = 0; i < number; i++){ int target = reversedArr[i]; if (!prime[target]) System.out.print(target + " "); } } }
-
해결됨김영한의 실전 자바 - 중급 2편
직접 구현 하는 배열리스트2 - grow() 에서 질문이요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의를 들으면서 궁금증이 생겨서 질문을 남깁니다.grow 라는 메서드를 통해서 동적 배열의 사용법을 잘보았습니다.전에 강의에서(어떤 강의인지는 기억 안남.) 영한님이 10억 이라는 숫자를 말씀 하신 걸로 기억을 합니다.이 10억 이라는 숫자 때문에 질문이 생깁니다.어떤 배열에 데이터를 넣다 보니 , 최대 데이터 용량이 18억건의 데이터를 넣을수 있게되었습니다. 그런데 어찌저찌 하다 보니 그 데이터 배열이 꽉 차서 50%를 배열의 길이 늘린다고 가정 했을 때, 대략 (18+9 = 27) 27억 이라는 배열의 길이가 나옵니다.근데 여기에서 int형 범위 가 생각납니다. 검색해보니 약 22억 '+,-' 이더 라고요.이런 경우에는 어떻게 처리를 하나요?, 아니면 이런 경우는 아에 없고, 데이터의 크기가 너무 크니, 어떠한 숫자의 상한선이 되면, 다른 객체 배열을 만드나요?(2번째 경우는 글 쓰면서 생각이 나네요)답변 부탁 드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
펜윅트리
펜윅트리 설명이 처음 들어보는 입장에서 너무 부족한거 같습니다.. 팬윅트리 그림에서 파란노드들이 뭘 의미하는지 파악하기 힘들었습니다( 렇기에 기존의 구간합에서 펜윅트리를 왜 사용하는지에 대한 자세한 이유도 파악하는데 힘들었습니다.). 이전 개념 강의들은 하나하나 세부적으로 알려주셨는데 이번에는 그냥 훅 지나친 느낌을 받았습니다. 그래서 이번 펜윅트리 강의는 따로 유튜브나 구글링을 통해 혼자 공부하게 되었습니다..펜윅트리 부분은 좀 더 자세히 설명을 해주셨으면 합니다 ㅠㅠ혹시나 저처럼 이해가 잘 안되시는 분들은 다음 유튜브를 통해서 학습하는 것을 추천드립니다! -> 코드는 파이서썬 코드지만 개념만 이해하시면 좋을거 같아요!https://www.youtube.com/watch?v=fg2iGP4e2mc
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P 풀이방식 의견 문의드립니다.
http://boj.kr/90516c4ae85645c8838ef4f3f2223b3f안녕하세요. 연구소 문제에서 바이러스 리스트를 따로 만들지 않고바이러스랑 연결된 0인 지점은 더하지 않는 방식으로 진행했는데 이렇게 풀어도 되는걸까요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
45번 공주구하기 문제를 list를 이용해서 이렇게 풀어도 될까요?
#include <iostream> #include <string> #include <cmath> #include <vector> #include <algorithm> #include <list> using namespace std; int main() { cin.tie(NULL); cout.tie(NULL); ios::sync_with_stdio(false); freopen("input.txt", "rt", stdin); int N, K, cnt=0; cin >> N >> K; list<int> L; for (int i = 0; i < N; i++) { L.push_back(i+1); } while (L.size() > 1) { list<int>::iterator iter = L.begin(); for (iter; iter != L.end(); iter++) { cnt++; if (cnt == K) { list<int>::iterator it = iter; iter++; L.erase(it); cnt = 0; if (iter != L.begin()) iter--; else cnt++; } } } cout << L.front(); return 0; } 안녕하세요. 45번 문제를 list를 이용해서 이렇게 풀어봤는데, visual studio로 컴파일해서 실행하면 정답이 제대로 나오는데 dev c++를 컴파일해서 실행하면 답이 틀리게 나옵니다.제가 쓴 코드도 맞는 방법일까요?저도 처음에 배열을 생각해뒀는데 N이 1000까지 가능하니깐, 1000번을 여러번 돌면 시간초과가 될 것 같아서 cnt가 k와 같아질때 리스트에서 제외하는 방식으로 코드를 짰습니다..