수강신청 프로그램 파이썬 - sugangsincheong peulogeulaem paisseon

수강신청 프로그램 파이썬 - sugangsincheong peulogeulaem paisseon

강의소개

파이썬 언어는 직관적입니다.
다른 언어와 다르게 데이터를 담을 수 있는 식별자를 일일이 지정하지 않아도 되고 작성 또한 간단하기 때문에 이해가 빠르고 쉽습니다.
막연히 코딩에 대한 두려움과 어려움으로 인해 아직 시도해보지 않았다면 이 강의를 통해 가장 기초적인 작성부터 코드짜는 로직까지 직접 실습해보고 공부할 수 있습니다.
시작이 가장 어렵다면, 시작이후 가장 어려운 것은 없습니다.
다양한 가능성이 열려있는 코드의 세계로 첫발을 내딛는 순간에 파이썬만큼 편하고 쉬운 방법도 없을 것입니다.
누구에게나 처음은 있습니다.
한번도 코딩을 해본 적이 없고, 배워본 적도 없고, 비전공이며, 활용도에 대해 감을 잡기 어려울 수 있습니다.
하지만, 궁금해서 배워보고 싶었는데 활용하는 방법을 알아가고 싶을 때, 많은 사람들이 이미 시작을 했고 알고 있다고 생각이 들 때, 막연히 두려워하기 보다 조금씩 알아가며 학습하는 과정은 시도해보지 않았을 때의 두려움보다 훨씬 가볍고 생각만큼 어렵지 않다는 것을 깨달을 수 있습니다.
해볼까? 라는 고민이 드는 순간에 시작을 해보는 것이 더 효율적입니다.
지금! 두려워하지 말고 시도해보세요!

수강신청 프로그램 파이썬 - sugangsincheong peulogeulaem paisseon

강의구성

강의는 이러한 내용들과 순서로 진행됩니다!

  • 1
    • 파이썬 기초 강좌의 목적,내용
    • 아나콘다 설치, 윈도우 상에서 주피터 노트북
  • 2
    • Magic command, shell command,주석,출력
    • 가장 기본적인 변수 선언, 식별자,선언 규칙
    • int, float, string, boolian, list, tuple, dict
  • 3
    • list/tuple/dictionary타입 특징
    • length활용,type change의 활용방법
    • 산술,할당,비교,논리,멤버 연산자
  • 4
    • if,if else,if elif else
    • input함수, random모듈 import방법 및 활용
    • for,while
    • for else, continue, break, list comprehension
  • 5
    • 다양한 function
    • declaration, self, constructor, destructor
    • heritage, overriding, class/instance member1
    • class/instance member 2,super
    • exception
  • 6
    • 알고리즘 문제

기대효과

파이썬을 통해 해보고 싶은 분야에 대해 감을 잡으셨다면 남은 것은 실행 뿐입니다.
파이썬은 프로그래밍,데이터분석,머신러닝,딥러닝 뿐만 아니라 웹개발까지도 영역을 확장해 나가며 활용도가 증가하고 있습니다.

수강신청 프로그램 파이썬 - sugangsincheong peulogeulaem paisseon

단순히 기초에서 끝나는 것이 아니라 학습 이후 여러분들이 생각하시는 혹은 생각지 못한 분야에서도 충분히 활용할 수 있습니다.
기초를 완성하신 후에는 파이썬에서 활용 할 수 있는 라이브러리 즉, 다양한 모듈들을 활용하여 본인이 꿈꾸는 분야, 사용하고 싶은 분야로 지식을 확대하면서 진행하세요!
기초 이후에는 패키지(모듈)수업 수강을 추천드립니다!

강의 맛보기

수강기간 / 환불정책 안내

수강신청 프로그램 파이썬 - sugangsincheong peulogeulaem paisseon
학습 안내

  • 본 클래스는 34차시, 8시간 53분 분량으로 구성되어 있으며,
    일 1시간(학습 30분, 실습 30분) 내외의 학습 시간을 기준으로 2주(14일) 수강시 완강이 가능한 구성입니다.
  • 해당 클래스는 사전 공지 없이 콘텐츠 내용, 가격, 할인 정책등이 변동 될 수 있습니다.

(1) 학습 기간

  • 기본수강기간(유료수강기간)은 최초 1개월 (30일)이며,
    기본수강기간 이후부터는 무제한(무료) 학습 기간이 적용됩니다. (기본 2년, 2년 단위로 무료 연장신청)
  • 유/무료 수강기간 모두 동일한 환경으로 학습이 가능합니다.
  • 유료수강기간은 결제일로부터 기간이 산정 되며, 결제를 완료하시면 ‘내 강의실’을 통해 확인 가능합니다.
  • 이지업클래스의 사정으로 인해 수강 시작이 늦어진 경우에는 해당 일정 만큼의 수강기간이 연장됩니다.

(2) 환불 규정

  • 이지업클래스의 환불규정은 아래와 같습니다.
    * 전액환불
    • 수강 시작 후 14일 이내, 5차시 & 5%(시간) 미만 수강 시: 실 결제금액 전액환불
    * 일부환불
    • 수강 시작 후 14일 이내, 10차시 & 10% 미만 시간 수강시: 실 결제금액의 2/3을 환불
    • 수강 시작 후 14일 이내, 15차시 & 15% 미만 수강시: 실 결제금액의 1/3을 환불
    • 요청일 기준 수강 시작 후 15일이 경과 되거나 15차시 또는 15% 이상 수강시 : 환불불가

(3) 주의 사항

  • 본 강의는 상황에 따라 사전 공지나 안내 없이 할인이 조기 마감 또는 연장 될 수 있습니다.
  • 천재지변, 폐업 등 서비스 중단이 불가피한 상황에는 사전 안내 없이 종료될 수 있습니다.
  • 무제한 강의의 경우, 내 강의실 수강기간 연장 신청을 통해 무제한으로 연장 가능합니다.
  • 구매한 무제한 강의의 연장 진행을 하지 않아 종료될 경우 복구 되지 않습니다.
  • 강의 컨텐츠는 향후 이지업클래스의 사정에 따라 추가 또는 업데이트 될 수 있습니다

강사소개

수강신청 프로그램 파이썬 - sugangsincheong peulogeulaem paisseon
김서준

경력

이학학사
현) ㈜유니윌부속 아이티윌 온라인사업부 팀장
현) 아이티윌 빅데이터 과정개발 강사
전) 학원 강사
전) 지엘엔터프라이즈 해외 기획팀 팀장

보유기술

SQL,Python,R,Tensorflow,Linux

수강신청 프로그램 파이썬 - sugangsincheong peulogeulaem paisseon
문제 25. (2021-05-25)

수강 신청 분석

이번 학기 ♣♧대학교의 수업 리스트가 나왔습니다.

[(4, 7), (2, 5), (1, 3), (8, 10), (5, 9), (2, 6), (13, 16), (9, 11), (1, 8)]

리스트에 담겨있는 튜플들은 각각 하나의 수업을 나타냅니다. 각 튜플의 0번째 항목은 해당 수업의 시작 교시, 그리고 1 번 항목은 해당 수업이 끝나는 교시입니다. 예를 들어서 0번 인덱스에 있는 튜플값은 (4, 7)이니까, 해당 수업은 4교시에 시작해서 7교시에 끝납니다.

(2, 5)를 듣는다고 가정합니다. (4, 7) 수업은 (2, 5)가 끝나기 전에 시작하기 때문에, 두 수업은 같이 들을 수 없습니다. 반면, 수업 (1, 3)과 (4, 7)은 시간이 겹치지 않기 때문에 동시에 들을 수 있습니다.

(단, (2, 5), (5, 7)과 같이 5교시에 끝나는 수업과 5교시에 시작하는 수업은 서로 같이 듣지 못한다고 가정합니다)

열정이 불타오르는 신입생 지웅이는 최대한 많은 수업을 들을 수 있는 수업 조합으로 수강 신청을 하려고 합니다.

주의사항

* 함수 course_selection은 파라미터로 전체 수업 리스트를 받고 가능한 많은 수업을 담은 리스트를 리턴합니다.

❧ 테스트 셋

def course_selection(course_list):
    #Code

#Test
print(course_selection([(6, 10), (2, 3), (4, 5), (1, 7), (6, 8), (9, 10)]))
print(course_selection([(1, 2), (3, 4), (0, 6), (5, 7), (8, 9), (5, 9)]))
print(course_selection([(4, 7), (2, 5), (1, 3), (8, 10), (5, 9), (2, 5), (13, 16), (9, 11), (1, 8)]))

❧ 출력 예시

[(2, 3), (4, 5), (6, 8), (9, 10)]
[(1, 2), (3, 4), (5, 7), (8, 9)]
[(1, 3), (4, 7), (8, 10), (13, 16)]

❧ 정답

def course_selection(course_list):
    # 시작 시간 순 정렬
    course_list.sort(key=lambda x:x[0])
    # 종료 시간 순 정렬
    course_list.sort(key=lambda x:x[1])
    course_select = [course_list[0]]
    j = 0
    for i in course_list:
        # (이후 수업의 시작 시간) > (이전 수업의 종료 시간)
        if (i[0] > course_select[j][1]):
            course_select.append(i)
            j += 1
    return course_select


print(course_selection([(6, 10), (2, 3), (4, 5), (1, 7), (6, 8), (9, 10)]))
print(course_selection([(1, 2), (3, 4), (0, 6), (5, 7), (8, 9), (5, 9)]))
print(course_selection([(4, 7), (2, 5), (1, 3), (8, 10), (5, 9), (2, 5), (13, 16), (9, 11), (1, 8)]))

1️⃣ 리스트 내, 수업 정렬 : 먼저 끝나는 수업으로 정렬하되, 시작 시간이 더 먼저인 수업이 뒤에 있을 수 있으므로 시작 시간 순 정렬을 우선 해준다.

<lambda 함수>

def 함수명(): 과 동일

형식 : 변수명 = lambda 매개변수1, 매개변수2... : 매개변수1, 매개변수2

(이때 : 뒤에는 return할 형태를 적어준다.)

2️⃣ 최적 부분 구조 : 첫 번째 선택한 튜플에 맞춰 남은 튜플들 중 최대 개수 조합 선정

탐욕적 선택 속성 :

1) 가장 먼저 시작하는 수업을 고른다.

2) 겹치는 수업이 가장 적은 수업을 고른다.

3) 가장 짧은 수업을 고른다.

4) 가장 먼저 끝나는 수업을 고른다.

출처 입력

→ 남은 리스트에서 가장 먼저 끝나는 수업을 고르는 게 최선의 선택이다.

3️⃣ 시간 복잡도

리스트 정렬 : O(n log2n)

반복문 반복 : O(n)

∴ O(n) + O(n log2n) = O(n log2n)