묻고 답해요
154만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-10 문제 이런 접근은 어떤가요?
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-10 2. 어려움을 겪는 부분재취준을 준비하면서 여러 기업의 코딩테스트를 봤었는데요.항상 시간 예외성 검사에 걸려서 코딩테스트를 탈락합니다.그래서 이 문제를 보면서도 시간을 최대한 줄이고자 노력했습니다. 3. 시도해보신 내용input = "abadabac" def find_not_repeating_first_character(string): while True: found_flag = False if len(string) > 1: target_char = string[0] for compare_char_index in range(1,len(string)): if target_char == string[compare_char_index]: found_flag = True break if found_flag: string = string.replace(target_char, "") else: return target_char else: return "_" result = find_not_repeating_first_character print("정답 = d 현재 풀이 값 =", result("abadabac")) print("정답 = c 현재 풀이 값 =", result("aabbcddd")) print("정답 =_ 현재 풀이 값 =", result("aaaaaaaa")) 제가 봐도 가독성이 안좋긴한데.. 저는 이 문제를 풀면서 가장 먼저 생각한 것이 '이미 한번 훑은 알파벳에 대해서는 순회를 제외한다' 였거든요.그런데 글을 쓰면서 다시 확인해보니 string을 replace할 때 오히려 더 시간이 늘어날 것 같기도 하구요.. ㅠㅠ for문의 대상이 되는 객체를 for문 안에서 변경할 수 없기에 부득이하게 found_flag라는 변수를 선언해서 for문 밖에서 판단 후 replace 하는 식으로 코드를 작성했습니다. 궁금한 점이, 딩코딩코님은 이 접근법에 대해서 어떻게 생각하시나요? 저는 정말 간단할 수 있는 문제를 20분 정도의 시간을 고민하면서 풀었는데, 이런 부분 때문에 실제 코딩테스트를 응시할 때도 시간이 부족했습니다.. ㅠㅠ 코딩테스트를 보면 1 <= N <= 1,000,000,000이런 식으로 제한을 두다 보니.. '길이 1억의 string이 주어졌을 때 전부 순회하면 시간이 너무 길어지지 않나..?' 하는 생각이 항상 발목을 잡는 것 같습니다.. 이런 문제를 접근할 때 어떤 식으로 접근해야 할지 조언 부탁드립니다..항상 좋은 강의 감사드립니다!! (_ _)
-
미해결김영한의 실전 자바 - 중급 2편
7번 장바구니 문제의 minus() 메서드 로직 관련
[질문 내용]문제 7 - 장바구니 문제에서, minus 메서드를 보면 찾으려는 product가 존재하지 않는 경우에도 cartMap.remove()를 호출하도록 되어 있습니다. 존재하지 않는 것을 지우고자 하는 게 불필요하게 메서드를 호출하는 게 아닌가 싶은데, 예제를 쉽게 만들기 위한 선택인가요, 아니면 실무에서 저렇게 결과를 찾을 수 없어도 지우도록 하는 코드를 작성해도 문제가 없는 건가요?
-
해결됨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군데 합격 비법, 2025 코딩테스트 필수 알고리즘
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군데 합격 비법, 2025 코딩테스트 필수 알고리즘
시간복잡도 설명부분에서 질문이 있습니다
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번 실행
주간 인기글
순위 정보를
불러오고 있어요