묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 코딩테스트 - 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와 같아질때 리스트에서 제외하는 방식으로 코드를 짰습니다..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-F 맞왜틀 질문
문제에서 제시한 테스트 케이스까지 맞았는데 제출하기를 누르면 틀렸다고 나옵니다. 어떤 반례가 문제인지 잘 모르겠어서 질문 드립니다. http://boj.kr/cf1bd196e8b24f53a036bea877785856
-
해결됨김영한의 실전 자바 - 중급 2편
직접 구현하는 배열리스트1 - 시작 set메서드에서 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 영한님이 만드신 배열리스트에서 set에서 궁금증이 생겨서 질문을 남깁니다.set메서드에서예전값 을 유지시키기 위하여 get메서드를 사용하여서 값을 반환 하는것을 보았습니다.근데 공부하면서 떠오르는 방법이사진 처럼 해보았고, 결과 값은 똑같이 나오더라고요.이렇게 하신 이유가 있으실까요?답변 부탁 드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
라인스위핑 , "큰돌이는 못말리는 화가야!!!" 질문
#include <iostream>#include <algorithm>#include <queue>using namespace std;struct a{ int s_lien = 0; int e_lien = 0;};bool cmp(const a &b , const a &c){ return b.s_lien < c.s_lien;}int main(void){ cin.tie(0)->sync_with_stdio(0); int n = 0; a st[10]; cin >> n; for(int i = 0; i < n; i++) cin >> st[i].s_lien >> st[i].e_lien; sort(st, st + n, cmp); int ans = st[0].s_lien + st[0].e_lien; for(int i = 1; i < n; i++) { ans = max(ans, st[i].e_lien); //ans += st[i].e_lien; } cout << ans; return 0;}이 코드 같은 경우도 끝지점을 ans 에 담는데 정답 코드가 될수 있나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
D-5 , 14469 질문입니다 !
http://boj.kr/980957a9a345489f988400c17b9af170시작시간을 정렬하고 for문 돌려면서 시간 차익을 ans 에 더해주는 로직입니다 4% 에서 틀리는데 어느 부분이 잘못된걸까요??라인스위핑 같은 경우 이런식으로 처리는 안되나요?
-
미해결김영한의 실전 자바 - 중급 2편
왜 이렇게 출력이 되는지 모르겠습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.dogHospital.set(dog); Dog bigger = dogHospital.bigger(new Dog("멍멍2", 200)); System.out.println("bigger ->" + bigger);여기서 출력이 왜 Animal{name = '', size =''} 로 되는 건가요?bigger()에서 return을 했을때 toString()으로 한게 아닌데 저렇게 출력 됐는지를 모르겠습니다
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
안녕하세요, 알고리즘 유형에 대해서 질문이 있습니다!
수업을 다 듣고 알고리즘을 유형별로 점진적 과부하를 주면서 풀면 좋다고 하셨는데요.혹시 좀 우선적으로 많이 풀어보면 좋다 할 만 한 유형이 있을까요? DFS, BFS 는 워낙 빈출이라 우선적으로 풀어야 할 거 같은데 다른 것들도 그런 것이 있는지 궁금합니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
pop 하는 이유
path.pop() 하는 이유가 궁금합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
break 위치
break 하면 for L, X in enumerarate 구문이아니라 it.permutations 가 멈추는 이유가 무엇인가요?
-
해결됨김영한의 실전 자바 - 중급 2편
배열의 특징2 - 데이터 추가 "이해에 되하여서"
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 질문이 생겨서 질문을 남깁니다.배열의 특징2 - 데이터 추가에서 첫 번째, index 번째, 마지막 번째, 에 추가 하는 것의 방법은 들으니까 이해가 됩니다.여기서 질문이 생깁니다. 듣기는 들었고, 따라 치기도 하고, 이해는 되고 그러는데. 뭔가 석연치 않는 부분이 있습니다.( 뭔가 애매하다고 해야 할끼요?)그것 때문에 어떻게 해야 할지 모르 겟네요. 이럴 때는 어떻게 해야 하나요?석연치 않은 부분이 풀릴 때 까지 계속 반복해서 듣고, 코드를 지웠다 치고 그러는게 좋을까요?아니면 다른 방법이 있을까요?답변 부탁 드립니다.
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
'9-1 들어가며' 강의 소리가 없습니다.
'9-1 들어가며' 강의 소리가 없습니다. 확인 부탁드립니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 팰린드롬 반례를 찾지 못하겠습니다.
백준 테스트 케이스는 전부 통과하는데, 내부 테스트에서 문제가 생긴것 같습니다. 반례를 찾지 못하겠습니다 .http://boj.kr/47c65fee4896418494c5eb382d780c2b감사합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
그리디 알고리즘으로 풀어지는게 이해가 안됩니다.
아무리 생각해도 '현재 최선을 선택하는 것이 최종적으로도 최선이 된다.'라는 개념의 그리디 알고리즘이 이 문제에 적용되는게 이해가 안됩니다.만약 테스트 케이스가 아래와 같을 때,190 50180 60170 100160 70150 80140 90해당 그리디 알고리즘으로 풀게되면 선택되는 것은(190 50), (180, 60), (170, 100) 입니다.하지만, 실제로 최적으로 선발하는 방법은(190 50), (180, 60), (160, 70), (150, 80), (140, 90) 입니다.제가 생각 하기에는 키 내림차순으로 정렬한 후에, 최장으로 길어질 수 있는 무게 오름차순 순열을 고르는게 맞는 것 같은데, 무언가 잘못 생각하고 있는건가요?
-
해결됨김영한의 실전 자바 - 중급 2편
배열의 특징2 - 데이터 추가 에서 질문이요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 궁금증이 생겨서 질문을 남깁니다.배열로 데이터를 첫 번째 위치에 추가, n 번째 위치에 추가, 마지막 위치에 추가 하는것 을 잘 보았습니다.근데 강의를 들으면서 객체 배열(ex: Integer)이면 어떻게 해야하지 라느 생각을 하게 되었습니다.30개 제한이 있는 객체 배열이 있고값이 20개(0~19) 까지만 담아져 있고, 나머지 값(19~29번째 )은 'null' 이라고 한다면, 마지막의 값(21번째에 넣겟다는 뜻입니다.)은 어떻게 넣지? 라는 생각을 하게 되었습니다.이런 경우 어떻게 해야 하나요?혹 나중 강의에 이런 내용 같은 게 나오나요?(그러면 강의를 통해서 배우면 되니까 안 알켜주셔도 됩니다.)답변 부탁 드립니다.