Giter VIP home page Giter VIP logo

fast_campus_algorithm_lecture_notes's Introduction

Fast Campus Algorithm Lecture Notes

  • 패스트 캠퍼스(Fast Campus) 알고리즘 강의 수강생들을 위한 나동빈 강사의 문제풀이 소스코드 저장소입니다.
  • 본 강의는 Python 3을 활용한 강의이지만, 대부분의 문제들에 대하여 C++11, Java 소스코드를 추가적으로 제공합니다.
  • 하단의 전체 소스코드들은 백준 온라인 저지(BOJ)에 제출하여 정답 처리를 받은 소스코드들입니다.
  • 소스코드와 관련한 궁금한 점이나 오류 관련 문의는 Issues 탭을 이용하여 남겨주세요.

강의 목차(Lecture Contents)

Chapter 01. 기본 자료구조

리스트, 큐, 스택을 활용한 문제풀이

Chapter 02. 고급 자료구조

해시, 집합을 활용한 문제풀이

Chapter 03. 기본 정렬 알고리즘

정렬 라이브러리, 키(Key) 기반 정렬, 계수 정렬을 활용한 문제풀이

Chapter 04. 재귀 호출

기본적인 재귀 함수 구현을 활용한 문제풀이

Chapter 05. 고급 정렬 알고리즘

병합 정렬을 활용한 문제풀이

Chapter 06. 기본 탐색 알고리즘

순차 탐색, 이진 탐색을 활용한 문제풀이

Chapter 07. 고급 탐색 알고리즘

트리 순회, 힙 (우선순위 큐), 위상 정렬을 활용한 문제풀이

Chapter 08. 동적 프로그래밍

잘 알려진 동적 프로그래밍 개념 (타일링, Knapsack, LCS, LIS 등)을 활용한 문제풀이

Chapter 09. 그래프 기본 탐색 알고리즘

DFS와 BFS를 활용한 문제풀이

Chapter 10. 그래프 고급 탐색 알고리즘

다익스트라 최단 경로 알고리즘, 최소 신장 트리 알고리즘을 활용한 문제풀이

Chapter 11. 탐욕 알고리즘

그리디(Greedy) 알고리즘의 원리를 활용한 문제풀이

Chapter 12. 백 트래킹

DFS 혹은 조합(Combinations)을 활용한 문제풀이

코딩 테스트 실전 모의고사 문제집 (Mock Exams)

  • 본 문제집은 최신 코딩 테스트 출제 경향을 고려해 나동빈 강사가 자체 제작 및 번역하여 구성한 문제집입니다.
  • 본 문제집은 인터넷 검색이 불가능한 상황에서 제한 시간 안에 Python 3.7 언어를 이용하여 풀어주세요.
  • 모든 문제들은 검수 과정을 거쳐 백준 온라인 저지(BOJ)에 업로드 되어있습니다.

코딩 테스트 모의고사 A형

난이도 문제 풀이시간 문제 개수 예상 합격 커트라인
중하 3시간 3문제 3문제
  1. 안테나: (Python 답안)
  2. 큰 수 구성하기: (Python 답안)
  3. 현명한 나이트: (Python 답안)

코딩 테스트 모의고사 B형

난이도 문제 풀이시간 문제 개수 예상 합격 커트라인
3시간 3문제 2~3문제
  1. 왕복: (Python 답안)
  2. 병사 배치하기: (Python 답안)
  3. 경쟁적 전염: (Python 답안)

코딩 테스트 모의고사 C형

난이도 문제 풀이시간 문제 개수 예상 합격 커트라인
3시간 3문제 2문제
  1. 시각: (Python 답안)
  2. 함께 블록 쌓기: (Python 답안)
  3. 감시 피하기: (Python 답안)

코딩 테스트 모의고사 D형

난이도 문제 풀이시간 문제 개수 예상 합격 커트라인
중상 3시간 3문제 2~3문제
  1. 럭키 스트레이트: (Python 답안)
  2. 근손실: (Python 답안)
  3. 무기 공학: (Python 답안)

코딩 테스트 모의고사 E형

난이도 문제 풀이시간 문제 개수 예상 합격 커트라인
3시간 3문제 2~3문제
  1. 점프 점프: (Python 답안)
  2. 특정 거리의 도시 찾기: (Python 답안)
  3. 샘터: (Python 답안)

fast_campus_algorithm_lecture_notes's People

Contributors

ndb796 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fast_campus_algorithm_lecture_notes's Issues

고급정렬 알고리즘 - 수 정렬하기 2 (백준 2751번) Java 코드 제출시 시간 초과 발생합니다.

출력시에 System.out.println(x) 로 하나씩 출력하는게 아니라
StringBuilder 를 사용해서 한번에 출력하면 시간초과를 피할 수 있습니다.

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        ArrayList<Integer> data = new ArrayList<>();

        for (int i = 0; i < n; i++) {
            int x = Integer.parseInt(br.readLine());
            data.add(x);
        }

        Collections.sort(data);

        StringBuilder sb = new StringBuilder();

        for (int x: data) {
            sb.append(x).append("\n");
        }

        System.out.println(sb);

        br.close();
    }
}

2110 번 문항 정답이 틀린 코드 입니다. 수정 부탁드립니다.

2110 번 문항 정답이 틀린 코드 입니다. 수정 부탁드립니다.

n, c = list(map(int, input().split(' ')))

data = []
for _ in range(n):
data.append(int(input()))
data.sort()

start = data[1] - data[0]
end = data[-1] - data[0]
result = 0

while(start <= end):
mid = (start + end) // 2 # mid는 가장 인접한 두 공유기 사이의 거리(Gap)을 의미합니다.
value = data[0]
count = 1
for i in range(1, len(data)): # 현재의 mid 값을 이용해 공유기를 설치 해보기
if data[i] >= value + mid:
value = data[i]
count += 1
if count >= c: # C개 이상의 공유기를 설치할 수 있는 경우, 거리를 증가시킵니다.
start = mid + 1
result = mid # 최적의 결과를 저장합니다.
else: # C개 이상의 공유기를 설치할 수 없는 경우, 거리를 감소시킵니다.
end = mid - 1

print(result)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.