이야기를 나눠요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
끄앙 50%보다가 코테 너무 어려워서 손 놓았다가 다시 왔어요.
DP전까지는 괜찮았는데 DP 부분부터 브루트포스 접근 그리디 접근 DP접근 하면서 머리 뱅뱅 돌면서 포기하게 됬었네요. 다시 도전 해볼려고 돌아 왔습니다 화이팅!!!
-
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
유니온 파인드 수업자료에 정답 코드가 없어요 ㅠ
유니온 파인드 수업자료에 백준 1717번 정답 코드를 넣어주실 수 있을까요?!
-
코딩테스트 그림을 그려보라는게 무슨말일까요?
전 부터 의문이였는데. 코딩테스트를 할 때 해야할 순서가 있잖아요?뭐 무조건 적이다 그런건 아닌데. 코딩테스트에서 해당 지문을 읽고 이해하기코딩테스트의 시간복잡도 계산? 어떤 알고리즘을 사용할지?이해가 안되면 그림으로 그려보기? 이외로 더 뭐가 있을까요?그리고... 애초에 위의 과정도 잘 안되는데. 그림을 그려보라는 것은 무엇을 그리라는 걸까요? 추상자료형? ??여러분들은 코딩테스트를 어떻게 푸시고 그 과정은 어떻게 하나요?상세하게 순서대로 말해줄 수 있을까요?
-
그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
[해시테이블-구현] C++ 구현...
#include <iostream> #include <string> using namespace std; // 이중 연결 리스트의 노드 정의 class Node { public: int playerNumber; string playerName; Node* prev; Node* next; Node(int num, const string name) : playerNumber(num), playerName(name), prev(nullptr), next(nullptr) {} }; // 해시 테이블 클래스 정의 class HashTable { private: static const int TABLE_SIZE = 10; // 해시 테이블 크기 Node** table; // 해시 테이블 배열 public: HashTable() { table = new Node * [TABLE_SIZE]; for (int i = 0; i < TABLE_SIZE; ++i) { table[i] = nullptr; // 초기화 } } ~HashTable() { for (int i = 0; i < TABLE_SIZE; ++i) { Node* current = table[i]; while (current) { Node* toDelete = current; current = current->next; delete toDelete; } } delete[] table; } // 삽입 함수 void set(int playerNumber, const string& playerName) { int index = playerNumber % TABLE_SIZE; Node* newNode = new Node(playerNumber, playerName); // 리스트의 맨 앞에 추가 if (table[index]) { newNode->next = table[index]; table[index]->prev = newNode; } table[index] = newNode; } // 검색 함수 string get(int playerNumber) { int index = playerNumber % TABLE_SIZE; Node* current = table[index]; while (current) { if (current->playerNumber == playerNumber) { return current->playerName; // 선수 이름 반환 } current = current->next; } return "선수를 찾을 수 없습니다."; // 선수 없음 } // 삭제 함수 void remove(int playerNumber) { int index = playerNumber % TABLE_SIZE; Node* current = table[index]; while (current) { if (current->playerNumber == playerNumber) { if (current->prev) { current->prev->next = current->next; } else { table[index] = current->next; // 첫 번째 노드 삭제 } if (current->next) { current->next->prev = current->prev; } delete current; return; } current = current->next; } } }; 복잡 스럽네요.. DoublyLinkedList를 가져와서 구현하려고 하니까. 일단.. 안되가지고. 애초애 javascript는 잘 모르겠지만...string을 넘겨주고 있는데. 만들어준 DoublyLinkedList는 호환되지 않네요..;; 일단. 방법을 좀 찾고 싶었는데.... 흠.. 너무 꼬여버려서. 뭔지 모르겠네요.. 흠.. 스터디에 끌려가서 큰일이네요. 빨리 끝내야 하는데. 하면서 하니까> #include <iostream> #include "Hash.h" using namespace std; int main() { HashTable hash; hash.set(1, "이운재"); hash.set(4, "최진철"); hash.set(20, "홍명보"); hash.set(6, "유상철"); hash.set(22, "송종국"); hash.set(21, "박지성"); hash.set(5, "김남일"); hash.set(10, "이영표"); hash.set(8, "최태욱"); hash.set(9, "설기현"); hash.set(14, "이천수"); cout << "1번 선수: " << hash.get(1) << endl; hash.remove(1); cout << "1번 선수: " << hash.get(1) << endl; cout << "21번 선수: " << hash.get(21) << endl; return 0; }
-
김영한의 실전 자바 - 중급 2편
김영한 선생님꼐
안녕하세요! 혹시 저는 백엔드를 하고 싶은 학생인데, 친구가 프론트엔드로 프로젝트 참여해볼 생각이 없냐고 물어봤습니다. 다만 학기중이라 프론트엔트를 처음부터 배우게 되면 아무래도 학교 공부를 조금이라도 더 소홀히 하게 되어서 학점에 영향이 아예 없다고는 못하지만 설령 나중에 인턴 혹은 취업 원서를 낼때 백엔드로 지원서를 내도 프론트엔드로써의 프로젝트 경험 유뮤가 취업 혹은 인턴 합격 확률에 많이 도움이 될까요?
-
그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
안녕하세요.
공부하면서 블로그에 정리하려고하는데 혹시 동영상 일부!..를 스샷 찍어서 올려도 될까요??그리고 비전공자인데 자료구조 책을 추천해주실만한게 있으실까요??실습은 선생님 강의로 하려고합니다.개념자체는 모든 언어가 비슷할 거라고 생각이드는데 시중에 파이썬, c, c++은 보이는데 js는 없어서 아무래도어떤걸 선택해야할지 몰라서 여쭤봐요.
-
김영한의 실전 자바 - 중급 2편
Player 클래스에서 addCard 함수의 기능이 궁금합니다
drawCard만 있으면 되는 거 아닌가요??
-
김영한의 실전 자바 - 중급 2편
Iterator 구현에 의문점이 있습니다.
일단 제가 이해한 것은myArrayMain에서 MyArray에 배열의 참조값을 넘겨주고그 참조값을 MyArrayIterator에 넘겨 새로운 인스턴스를 생성합니다최종적으로 MyArrayIterator에서 참조값을 반환받아서iteorator 함수를 사용합니다.그러나 아래의 코드처럼 곧바로 MyArrayIterator로 배열의 참조값을 넘겨도 바로 사용이 가능한데 이렇게 하면 어떤 문제점이 생길지 궁금합니다. 유지보수 관점에서 문제가 생기는 걸까요?
-
코딩테스트 [ ALL IN ONE ]
알고리즘 문제
안녕하세요 선생님 🙂먼저 양질의 강의를 제공해 주셔서 감사합니다! 정말 재밌게 공부하고 있어요!다름이 아니라 그날 배운 강의 내용과 관련해서 연습식으로 문제를 풀고 싶은데요알고리즘은 사이트를 아직 제대로 사용해 본 적이 없어서요.. 혹시 어떤 사이트가 괜찮은지, 그리고 카테고리 별로 풀어 보고 싶다면 어떻게 접근을 해야 하는지 팁을 받을 수 있을까요?!
-
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
반복 풀기
안녕하세요 강의 잘 듣고 있습니다.저는 자바로 풀이하고 있는데요풀이를 해보다가 실패하고 답안을 보고 이해하고 성공했습니다.하지만 아마도 며칠 지나고 봤을 때 풀 수 있을지 의문입니다.이럴 때는 며칠동안 반복해서 보는게 좋을까요? 항상 어렵네요 알고리즘은 ㅎㅎ..
-
김영한의 실전 자바 - 중급 2편
로 타입쓰는 팀원, 제네릭 사용 어떻게 설득할까요?
안녕하세요.로 타입을 쓰는 팀원에게 어떻게 제네릭을 쓰자고 잘 설득할지 고민입니다. 20년, 10년 전의 레거시 코드를 유지보수하고 있습니다.현재 사용중인 JDK는 1.6인데요. 그러면 객체 생성 시 할당하는 곳에서 생략하는 건 못해도 제네릭 자체는 쓸 수 있잖아요. 로 타입은 기본이요, 제네릭을 List<Map> 까지만 쓴다거나, 아예 그냥 자료구조를 따로 만들어서(?) 사용하더라고요. 그래서 최근에 제네릭을 쭉 여러 서적과 강의를 보면서 공부하고 있긴 한데, 거대한 레거시 코드라 한 번에 고칠 수는 없고... 그렇다고 팀원에게 강요하는 건 그릇된 개선이라고 봅니다. 어떻게 하면 제네릭을 잘 도입할 수 있을까요? 제가 공부를 정말~ 많이 하는 방법밖에 없는 걸까요? 제네릭 한 번 쓰면 코드의 양이 확 줄텐데 말이죠...그러면 유지보수도 편해지고 좋을텐데...🥺
-
비전공자의 전공자 따라잡기 - 자료구조(with JavaScript)
강좌소개 수업 자료 링크
https://github.com/zerocho/cs-datastructure https://github.com/vadimg/js_bintrees#readme 강의 볼때마다 강좌소개로 들어가기 번거로워서 여기에 올려두고 싶습니다!
-
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
핵심 강의를 전체를 실제 실습도 직접 풀어보고 잘 안풀리면 강의를 다시 듣고를 반복해서
다 듣게되었는데요. 아직 뭔가 자신감이 없고 문제가 길어지거나 복잡해보이면 주저하게 되는데... 어떻게 더 강화할 수 있을지 고민입니다..코딩센세님도 이런 경험이 있을 것 같은데 어떻게 극복하셨나요?
-
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
선생님 그리디 알고리즘에 대해서 질문있습니다!
안녕하세요 코딩센세님!주먹구구식의 양치기로 알고리즘에 접근하다가 좌절했지만 선생님의 강의를 보고 다시 의지를 불태우고 있는 수강생입니다. 모든 강의를 다 보지는 않았지만 냅색을 접근하는 방식에서 큰 감명을 받았고 나도 할 수 있구나라는 생각을 하면서 열심히 보고있습니다. 그래서 이 부분과 관련해서 의문점이 생겼습니다! Q1. 그리디는 어떻게 접근할까?완탐적 사고를 통해서 모든 경우의수를 통해 문제를 풀 수 있지만 시간 복잡도를 줄이고자 DP를 사용하게 되고 이보다 더 빨리 찾기 위해서 그리디를 사용하는 것으로 알고 있는데, 이 부분은 어떻게 접근하면 좋을까요? 다른 강의들도 찾아보았을때, 그리디는 그냥 양치기로 더 많은 문제 유형과 익숙해지게 만드는 방법으로 접근하는 케이스를 봐왔어서 선생님은 어떻게 접근하실지 궁금했습니다. Q2. 그리디와 관련한 강의 계획이 있으실까요?만약 없으시다면 요청드리고 싶은 내용입니다!
-
실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
안녕하세요 강사님
안녕하세요 강사님 제가 DBA 업무를 본지 2년차 되가는데요. 아는 지인분께서 데이터 엔지니어 영역도 배워보는거 어떻냐고 하셔서 강의를 찾고 있는데요. 강사님 강의가 생각나서 문의드립니다.혹시 강사님 강의중에 데이터 엔지니어에게 도움이 될만한 강의들 추천해주실수 있으실까요?
-
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
코테 준비 방향성 추가 질문
안녕하세요! 앞으로의 코테 준비 방향에 대해 더 질문하고자 합니다.1. 지금 프로그래머스 기초, 입문은 전부 푼 상태이고 앞으로는 유형별로 풀어볼 계획입니다. 저는 여러 문제들을 푸는 것보다는 풀었던 문제들을 설명할 수 있을 정도까지 반복해서 푸는 것이 중요하다고 생각합니다. 그래서 유튜브 플레이리스트에 올려 놓으신 유형별 문제들과 각 알고리즘 설명 영상 마지막에 추천하는 문제들을 반복적으로 풀어보려고 하는데 괜찮은 방법일까요? 2. 각 유형별 문제들 혹시 추천 받을 수 있을까요?
-
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
코딩테스트 방향성
코딩테스트 준비하다가 답답해서 이 영상 보고 어느정도 의문스러운 점이 해소돼서 방향성을 잡았는데 혹시 어떤지 한번 봐주실 수 있나요? 현재 프로그래머스에서 기초, 입문으로 분류된 문제들은 다 풀었고 나머지 문제들 정답률 높은 순부터 풀고 있었습니다. 프로그래머스와 유튜브 플레이리스트로 분류하신 알고리즘 빈출 유형 문제들만 반복해서 풀어보려고 했는데 괜찮을까요? 그리고 저번에 이 강의 소스코드 올려주신다고 한 거 같은데 좀 걸릴까요?
-
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
백준 사이트
원래는 프로그래머스에서만 풀다가 이번에 처음 백준 사이트를 이용하는 중입니다. 프로그래머스와 달리 테스트 케이스 테스트 해보기도 너무 어렵고 실수한 곳을 찾아내기가 너무 어려운데 혹시 추천하는 방법 있으신가요?혹시 코드 답은 따로 안 올려주시나요? 강의 페이지에 한번에 들어오지 않아 일일이 비교해가면서 정답을 맞추기 어렵습니다.
-
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
기억 ( 누적합 ) #2304 문제 고민
안녕하세요 ! 선생님! 본 강의를 수강 중인 학생입니다.2304 문제를 풀어보려고 고민을 1시간 정도 하다가 도저히 길이 보이지 않아서선생님의 코드를 봤는데요for i in range(n): x, y = map(int,input().split()) graph[x] = y x_list.append(x) y_list.append(y)이런식으로 그래프를 리스트 형태로 구현하여 풀이를 하시더라구요..저는 도저히 이런 창의적인 방법이 떠오르지 않아서어떻게 풀어야 할지 길이 보이지가 않습니다..이럴 때는 어떻게 해야하질 막막하네요..어떻게 하면 아 이건 graph[x] = y 와 같은 코드를 통해 풀어나가야 겠다! 라는 생각이 들 수 있는건지..막막합니다 ㅜㅜ 재능이 없는 걸까요,,
-
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
혹시 냅색문제의 경우 dp를 1차원으로 해결 할 수 있는 방법은 없을까요?
public class BOJ_12865 { static int N; static int K; static int[][] merchandise; // 0 : 무게, 1 : 가치 static int[][] dp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); K = sc.nextInt(); merchandise = new int[N][2]; dp = new int[10000000][N]; for (int i = 0; i < 10000000; i++) { for (int j = 0; j < N; j++) { dp[i][j] = -1; } } for (int i = 0; i < N; i++) { merchandise[i][0] = sc.nextInt(); merchandise[i][1] = sc.nextInt(); } int max = recursion(0, 0); System.out.println(max); } private static int recursion(int index, int weight) { if (weight > K) { return Integer.MIN_VALUE; } if (index == N) { return 0; } if (dp[weight][index] != -1) { return dp[weight][index]; } dp[weight][index] = Math.max(recursion(index + 1, weight), recursion(index + 1, weight + merchandise[index][0]) + merchandise[index][1]); return dp[weight][index]; }안녕하세요 덕분에 강의 잘 듣고 있는 수강생입니다. 냅색 문제를 풀고 있는데, 최대 가능한 무게의 경우 100 (배낭 물품의 최대 개수) * 100,000(각 물건의 최대 무게) 로 생각보다 생성해줘야하는 배열의 크기가 크더라구요. 그래서 혹시 dp를 1차원 배열로 생성하면 어떻게 되는 지 궁금하여 1차원 배열로 해본 결과, 무게를 고려하지 않고 dp의 무게 갱신을 하게 되어 답이랑은 다르게 나오네요. 혹시 1차원 배열을 시도하려고 할 때 제가 놓치고 있는 부분이 있을까요?감사합니다.