묻고 답해요
152만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 큰돌님 강의 학습 방법에 대해서 질문이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 다른 질문글들도 많이 보았고 큰돌님 말씀대로 c++교안도 1회독 진행한 상태입니다.0주차 개념강의 + 1주차 개념강의들도 전부 보았습니다.이제 1-A 강의 차례인데요.다른 공부법 질문글들에 답변에는 해당 문제를 먼저 풀어보고 안되면 그때 강의를 보라고 하셨는데해당 강의에 해당하는 문제는 알고리즘_문제해설.pdf파일을 보고 해당 문제를 직접 찾아서 문제를 풀면되는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C 질문있습니다
안녕하세요! 강의영상과를 다르게 void형 dfs로 풀긴했는데 왜 어느부분이 문제인지 잘 모르겠습니다..https://www.acmicpc.net/source/share/b115b1f7228b4af78b7cb918eb678018
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
리스트 선언
cnt =[0]*(n+m+3)로 리스트를 선언하셨는데, 저는 문제 풀때 cnf = list()로 선언했는데 Traceback (most recent call last): File "C:\Users\User\Desktop\파이썬 TEST\AA.py", line 38, in <module> cnt[i+j] += 1IndexError: list index out of range오류가 나더라고요해당 선언을 하면 왜 오류가 나는것인가요..? 이렇게 해도 문제는 풀려야하지 않나요..? 의문점이 남아서 질문올립니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-k, cout.tie() 틀
#include <bits/stdc++.h> using namespace std; string s, ret; char mid; int cnt[200], flag; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> s; for (char c : s) cnt[c]++; for (int i = 'Z'; i >= 'A'; --i) { if (cnt[i] & 1) { flag++; mid = char(i); cnt[i]--; } if (flag == 2) break; for (int j = 0; j < cnt[i]; j += 2) { ret = char(i) + ret; ret += char(i); } } if (mid) ret.insert(ret.begin() + ret.size() / 2, mid); if (flag == 2) cout << "I'm Sorry Hansoo\n"; else cout << ret << "\n"; return 0; } 강사님의 코드와 동일한데 최적화를 위해 cout.tie(NULL)이 추가된 코드입니다. ""cout"이 모호합니다."라는 오류가 뜨지만, 출력은 잘 진행됩니다. 문제는 백준에서는 틀림처리가 생기는데 왜 그런건가요? 알고리즘 교안에서는 scanf나 printf를 사용하지 않으면 괜찮다고 나와있는데 추가적으로 더 알아야할 것들이 있는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - O 맞왜틀 질문있습니다.
테스트 케이스는 다 맞는데 나름 작은단위로 디버깅도 돌려보고 했는데도 어디서 문제가 틀렸는지 전혀 감을 못잡겠네요... 부탁드립니다. http://boj.kr/66123546c1c34e09a8d17f5fbf38cec8 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
LinkedList를 활용한 접근
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 강의 잘 듣고 있습니다.혹시 이 문제를 LinkedList를 사용해서 접근하면 부적절한가요?자바로 풀었고 통과는 되지만 시간 복잡도가 커질거 같아 문의 드립니다.아래는 저의 코드 입니다. </>public class Baekjoon2828 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int j = sc.nextInt(); int[] arr = new int[j]; for (int i = 0; i < j; i++) { arr[i] = sc.nextInt(); } int idx = 0; LinkedList<Integer> list = new LinkedList<>(); int dist = 0; int cur = 1; for (int i = cur; i < m + 1; i++) { list.add(i); } while (idx < j) { int goal = arr[idx]; if (!goalInList(list, goal)) { if (cur < goal) { while (!goalInList(list, goal)) { cur++; int first = list.pollFirst(); list.add(first + m); dist++; } } else if (cur > goal) { while (!goalInList(list, goal)) { cur--; int last = list.pollLast(); list.addFirst(last - m); dist++; } } } idx++; } System.out.println(dist); } static boolean goalInList(LinkedList<Integer> list, int goal) { for (int element : list) { if (goal == element) { return true; } } return false; } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 숨박꼭질4 코드 질문있습니다
큰돌님 처음에 강의 안 보고 제 마음대로 구현 했는데 시간초과로 실패했습니다.http://boj.kr/7734de2a971e4fa7b37a8dfce748f423└ 이 코드인데 시간 복잡도는 무시하고 봤을 때 로직 자체는 맞는지 궁금합니다그리고 맞다면 제 코드의 시간 복잡도가 얼마인지와, 큰돌님 코드의 시간복잡도는 얼마인지 궁금합니다. 마지막으로 강의 보고 복기하면서 구현했는데http://boj.kr/66f1b9db5aac45a2b9b861e67ab52543왜 제 코드는 prev 변수를 쓰면 컴파일 오류가 나는 것인가요 ??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-B 맞왜틀 과련 질문
https://www.acmicpc.net/source/87407582 왜 틀린건지를 모르겠어요.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
dev C++ 콘솔창 바로 닫힘
콘솔창이 바로 닫혀서 출력확인이 안됩니다.1.#include <stdlib.h>,#include <stdlib.h>의 system("pause");를 return 0;이전에 코드 적기,getch();system함수위에 추가해보기.도구-환경설정-pause console programs after return 체크하기위 방법 다 안되고, 채점만 진행중인데ㅠ 뭐가 문제인지 모르겠습니다.다른 툴 써야할까요?
-
해결됨코딩테스트 [ ALL IN ONE ]
노션 공유 부탁드립니다.
안녕하세요 현재 강의를 듣고 있는데 노션 워크스페이스 공유가 안되어있어서 해당 메일로 공유 부탁드립니다.dohyun8032@gmail.com
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
nPr에서 의미없는 연산을 건너뛸 방법이 있을까요?
n개의 원소 중 r개 원소로만 이루어진 순열 결과를 얻고 싶어 간단한 수정을 해보았습니다.set이 중복값을 없애주기에 원하는 결과는 얻었지만, 필요없는 연산을 줄이는 방법은 모르겠습니다.(0,1,5에서 바로 다음 연산값인 0,1,9를 찾는 게 아니라, 실제로는 <0,1,5,9,15>의 다음 순열값인 <0,1,5,15,9>를 찾고있음)
-
미해결코딩테스트 합격자되기-알고리즘 개념
의사코드 작성시에 깊이에 대한 질문입니다.
의사코드 작성시에 깊이가 3단계를 넘어가지 않아야 하고, 넘어간다면 그 부분을 함수로 만들라고 하셨습니다. 함수를 만든다는 의미는 의사코드에서 함수를 만들라는 이야기 인가요?? 아니면 의사코드는 깊이를 전부 표현하되, 구현에서 함수로 독립을 시켜야 한다는 의미 인가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-k 맞왜틀 질문있습니다.
안녕하세요.아쉽게도 강의처럼 2차원 배열에 모아둔 후, 한칸씩 당기는것을 생각을 못해 노가다로 풀어버렸습니다.다만 알고리즘 자체는 맞다고 생각하고, 예제도 다 맞는데 16%에서 틀려버리네요.어디가 틀렸는지 궁금합니다.http://boj.kr/76b5753735c448b7a9558225494e778e감사합니다.
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 상한 설정을 위해 생성자를 활용하는 것이 extends보다 못한 점이 무엇인가요?
[질문 내용]제네릭의 상한 설정을 소개하시기 전에 어떻게 특정 타입만을 받도록 할지 혼자 고민을 해 보았는데, 클래스 생성 시 생성자를 통해 받을 타입을 제한하면 어떨까 생각했습니다. public class Box<T> { private T animal; public Box(Animal animal) { this.animal = (T) animal; } } 결과적으로 문제를 해결하기는 했는데, 이 방법에도 여전히 문제가 있기 때문에 extends를 이용하는 거겠죠? 상기한 방법이 extends를 이용하는 방법보다 못한 점이 무엇인지 궁금합니다.
-
미해결김영한의 실전 자바 - 중급 2편
Cat에 toString 을 오버라이딩 하면...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]위와 같이 Cat 클래스에 toString 메서드를 오버라이드 했을때 findAnimal2 의 결과가 Cat()이 나오는게 왜 그런지 모르겠습니다.. 타입 인자가 Animal이고, Cat은 Animal을 상속받은 자식 클래스기 때문에 Cat의 toString 이 나와야 하는거 아닌가요..? 어디서 놓친건지 잘 모르겠습니다.
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
코딩테스트 디버깅
안녕하십니까 좋은 강의 잘보고있습니다!디버깅에 관한 중요성을 알려주셨는데 요새 코딩테스트는 IDE를 허용하지않는 경우가 꽤 있는것으로 알고있습니다.이러한 경우에는 어떻게 처리하시나요?
-
해결됨38군데 합격 비법, 2024 코딩테스트 필수 알고리즘
1-9 알고리즘 문제 다른 코드
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?1-9 알고리즘 더 풀어보기 (1) 2. 어려움을 겪는 부분문제의 조건이 모든 연산은 왼쪽에서 순서대로 이루어진다. 라고 되어있어, 연산을 해야하는 순간에 가장 최대가 될 수 있는 연산만 골라서 계산한다 라고 떠올려보았습니다. 그렇다면 해당 문제를 greedy로 생각해봐도 괜찮을까요? 아직 진도 초반이지만, 평소 코테 문제를 볼 때 어느 부분에 힌트를 잡고 어떤 알고리즘으로 풀어야하는지에 대해 감이 없는 상태라서 이런 문제들(연산이 순서대로 된다던지, 거스름돈 문제처럼 단위가 결정된다던지)은 greedy로 보면 되는지 여쭙고싶습니다.아래는 풀이한 코드입니다.def find_max_plus_or_multiply(array): answer = array[0] for n in range(1,len(array)): if answer + array[n] > answer * array[n]: answer += array[n] else: answer *= array[n] return answer result = find_max_plus_or_multiply print("정답 = 728 현재 풀이 값 =", result([0,3,5,6,1,2,4])) print("정답 = 8820 현재 풀이 값 =", result([3,2,1,5,9,7,4])) print("정답 = 270 현재 풀이 값 =", result([1,1,1,3,3,2,5]))
-
해결됨38군데 합격 비법, 2024 코딩테스트 필수 알고리즘
시간복잡도 설명부분에서 질문이 있습니다
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?1챕터 7강 (공간 복잡도 판단하기) 2. 어려움을 겪는 부분1-7 강에서 시간 복잡도 설명을 해주시면서아래 코드들을 직접 array 길이의 값인 26을 대입하여 비교해주셨는데요,사실상 첫 번째 코드는 이중 for문이므로 O(N^2)이고, 두 번째 코드는 for문을 각각 1개씩 썼기때문에 O(N)라 시간복잡도면에서 큰 차이가 나지않나해서요강의에서는 직접 숫자를 대입한 후에 첫 번째 코드와 두 번째코드는 N^2에 비해 효율에 있어 차이가 없다고 말씀하셔서 어디 부분에 제가 혼동이 오는지 궁금하여 질문드립니다! for alphabet in alphabet_array: # alphabet_array 의 길이(26)만큼 아래 연산이 실행 occurrence = 0 # 대입 연산 1번 실행 for char in string: # string 의 길이만큼 아래 연산이 실행 if char == alphabet: # 비교 연산 1번 실행 occurrence += 1 # 대입 연산 1번 실행 if occurrence > max_occurrence: # 비교 연산 1번 실행 max_alphabet = alphabet # 대입 연산 1번 실행 max_occurrence = number # 대입 연산 1번 실행 for char in string: # string 의 길이만큼 아래 연산이 실행 if not char.isalpha(): # 비교 연산 1번 실행 continue arr_index = ord(char) - ord('a') # 대입 연산 1번 실행 alphabet_occurrence_list[arr_index] += 1 # 대입 연산 1번 실행 max_occurrence = 0 # 대입 연산 1번 실행 max_alphabet_index = 0 # 대입 연산 1번 실행 for index in range(len(alphabet_occurrence_list)): # alphabet_array 의 길이(26)만큼 아래 연산이 실행 alphabet_occurrence = alphabet_occurrence_list[index] # 대입 연산 1번 실행 if alphabet_occurrence > max_occurrence: # 비교 연산 1번 실행 max_occurrence = alphabet_occurrence # 대입 연산 1번 실행 max_alphabet_index = index # 대입 연산 1번 실행
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F 질문 있습니다.
#include <iostream> #include <string> using namespace std; int main() { string S; getline(cin, S); string result = ""; for (char c : S) { if (c >= 'A' && c < 'Z') { result += (((c - 'A') + 13 ) % 26) + 'A'; } else if (c >= 'a' && c <= 'z') { result += (((c - 'a') + 13 ) % 26) + 'a'; } else { result += c; } } cout << result; return 0; }이렇게 작성을 하고 실제 출력 값도 맞게 잘 나오는데 1%에서 틀렸습니다가 뜨는데 이유를 모르겠습니다...
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
침몰하는 타이타닉(그리디) 문제 질문
안녕하세요! 강의 잘 듣고 있습니다공부를 하다가 오래 고민해도 이해가 안되는 부분이 생겨서 질문 처음 남겨봅니다~ 침몰하는 타이타닉 (그리디) 문제에서 예를 들어무게가 100 90 80 80 80 80 40 30 20 10 인 10명의 사람들을 무게 한도가 140인 구명보트에 태울때강사님 풀이 대로면 100인 사람과 10 인 사람을 태우고90 인 사람과 20인 사람을 태우는 방식으로 시작해서(100,10) (90,20) (80,30) (80, 40) (80) (80) 이렇게 6개의 구명보트에 사람을 태우는데 저는 100인 사람과 40인 사람을 먼저 태워야한다고 생각을 했습니다.뭔가 강사님 풀이대로 100인 사람과 10 인 사람을 먼저 태우면 80 인 사람이 혼자 타게 되는데100이 40과 함께 타면 80 인 사람이 10 인 사람과 같이 탈 수 있으니 80은 혼자 타지 않아도 되서 cnt 가 최소가 되는게 아닌가 생각했습니다.( 즉 100 일떄 140 - 100 은 40 이니 40보다 작은 수 중에서 가장 큰 값을 구하는 방식으로 풀었습니다 이중 반복문을 사용합니다 (100, 40) (90, 20) (80, 20) (80, 10) (80) (80) ) 제가 제 방식, 강사님 방식으로 5시간정도 시뮬레이션 해 본 바로는 결국 결국 cnt는 같았습니다그런데 왜 같은지 논리적으로는 이해할 수가 없어요.. ㅠㅠ논리적으로 왜 같은지 혹시 설명해주실 수 있으실까요..
주간 인기글
순위 정보를
불러오고 있어요