Identity_Protfolio&Interview/07_Presentation & Lecture

[문지의 알고리즘 강의 2강]알고리즘 테스트 1단계 맛보기

스타트업_디벨로퍼 2020. 12. 18. 15:28

Sour Grape !

: 원하는 것이 있으나 가질 수 없을 때, 그것을 폄하하거나 비난 또는 무시한다는 의미

지금의 고통은 몸에 새겨지지 않고, 느낌만 기억하게 될 것이며, 취직이라는 결과는 평생 갈 겁니다.

지금 6개월동안 진짜 후회없이 살아보아요~~ㅎㅎ

Stick with it!

: 포기하지 마세요!!!

다윗과 골리앗 <~> 우리와 전공자

 

그럼에도 불구하고 우리는 코린이......ㅠㅠ

탁상공론(卓上空論)이라는 생각과...깊은 반성....

→ 생각해보면, 아직 함수를 제대로 배우지 않았기 때문에, 시도하시기가 어려우셨을도 있을 거 같다는 생각을 하게 되었습니다.

→ 앞으로 알고리즘 강의를 바로 시작하게 된다면, 현실성이 없다는 생각을 하게 됬습니다.

실제 현실을 담아내지 못하는 것비효율적이고 비합리적이며, 최적의 상태가 아니라는 생각이 들었습니다.

 

 

그럼에도 불구하고, 제가 쏟아 부은 **노력(강의 준비, 강의)**이 **최대의 결과(코딩 역량 테스트 이전 대부분의 수강생이 알고리즘 스터디 1단계 80%이수)**를 만드는 것이 여전히 목표입니다.

현실감 있는 알고리즘 스터디(강의)가 요구됨!!

그렇다면, 우리의 일정을 생각해보았을 때 **30개의 알고리즘 테스트 1단계 통과(80% 이수)**를 위해서는 무엇을 해야할까??

답은 강의를 뒤로 미루고 30개의 알고리즘 테스트(1단계)에 대한 방향성을 제시해주는 스터디선행되어야 한다!

우리의 로드맵!!

roadmap.sh/

현실을 파악하고, 미래를 향해 긴장하는 타임!!

핸드폰을 꺼내보세요!!

github.com/ndb796

 

개발자 출신 나동빈님의 블로그 및 Youtube

https://youtu.be/hElB_FY33xs

그렇다 우리는 원활한 커리어 패스를 위해서 포트폴리오 구성이 필수적이고, 아래와 같은 단계별 진행이 요구된다!!

——————————————아이디어 구상의 영역————————————————

1단계 : 아이디어 구상

2단계 : 기술 조사 (with 개발자 커뮤니티)

→ 여기는 프로젝트 수행 전에 미리미리 고민해보기

———————————————프로그래밍의 영역—————————————————

3단계 : 소스코드(Source Code) 관리 방법 (with Github)

4단계 : 프로젝트 설계

5단계 : 프로젝트 개발

→ 프로그래밍 수행 전에 코딩 역량과 알고리즘 역량이 선행되어야함

————————————————디자인의 영역——————————————————

6단계 : 프로젝트 배포

7단계 : 포트폴리오 요약

→ 여기는 Adobe Xd, 포토샵, Powerpoint, 각종 데이터 분석 툴 등을 활용...

3단계 부터는 우리의 알고리즘 고안 및 코딩 역량이 필수적으로 요구된다. 그러나, 현재는 아직 일반적인 코딩도 어려운 것이 현실!!

!특별편성!

😋알고리즘 테스트 특별과정의 탄생!!

플레이데이터 일정(수정)

19일부터 시작되는 함수와 알고리즘 테스트와의 연계성을 감안할 때, 그동안의 구문을 복습하면서 두 번의 특별과정이 단방향적인 교육이 아니라 쌍방향적인(체험형) 교육을 원했기에 위와 같이 편성하였습니다. 알고리즘 테스트 1차를 이미 통과한 학생분들은 지금 하신 방법이 아니라 효율성과 최적성등을 감안하여, 시간과 공간을 모두 잡는 또 다른 방법으로 지금 시간에 고민해보시면 좋을 거 같습니다.

오늘이 함수 진도를 나가게 되므로, 복습&실습 겸 제대로 체득하는 시간이자

for 구문, while 구문, if 구문 등을 어떻게 구분하면 되는지 range(), len() 등을 포함하는 내장 함수 활용 문제 list(), set() 등을 포함하는 형 변환 문제 등을 유형별로 다루고자 합니다.

 

알고리즘 테스트 목차(1단계)

1) 두 정수 사이의 합

2) 수박수박수박수박수?

3) 서울에서 김서방 찾기

4) 약수의 합

5) 문자열 내 p와 y의 개수

6) 같은 숫자는 싫어

7) 가운데 글자 가져오기

8) x만큼 간격이 있는 n개의 숫자

9) 직사각형 별찍기

10) 평균 구하기

11) 행렬의 덧셈

12) 짝수와 홀수

13) 자릿수 더학

14) 최대공약수와 최소공배수

15) 정수 제곱근 판별

16) 문자열 다루기 기본

17) 정수 내림차순으로 배치하기

18) 자연수 뒤집어 배열로 만들기

19) 핸드폰 번호 가리기

20) K번째 수

21) 하샤드 수

22) 나누어 떨어지는 숫자 배열

23) 모의고사

24) 완주하지 못한 선수

25) 2016년

26) 소수찾기

27) 예산

28) 체육복

29) 시저 암호

30) 비밀지도

이건, 이미 알고 있는데, 무엇을 해야할지 모르겠어요.....😂🤣

그래서 준비했다!! 😘**Core를 찌르는 알고리즘 분석 강의!!

30개의 문제에 대해서 아래와 같이 분석과 분류를 진행하였으며, 2시간의 강의동안 체험형으로

✔ 주의사항 -** 아래의 방법(알고리즘)은 제가 생각해낸 가이드 형태의 방법론 - 정답이 하나밖에 없지는 않습니다. - 아래 자료는 참고용이 아래의 논리에 매몰되어서도 안됨

  • 아래의 가이드에 따르려고 **너무 틀에 얽매이실 필요도 없습니다.
  • 그렇기에, 제가 제안한 방법과 다른 방법으로 꼭 풀어보세요!**

→ It's just for reference!!

위의 엑셀을 복사하여 제가 작성한 내용은 모두 제거하고, **1) 문제, 2) 조건, 3) 파라미터(input-변수,자료형, output-변수,자료형), 4)알고리즘(특성, 전략, 구문, funciton)**을 작성해나가보시기 바랍니다.

위 작업 수행시에 필요한 사항

(같이 실시하기)

  1. 위와 같은 스프레드 시트를 통한 분류

→ 기존에 제공해드린 시트를 본인 시트에 복사한 뒤에 내용을 모두 날리고 본인만의 방식으로 작성해보아요!!!

1-1) 단순히 글로만 알고리즘을 분석하기 어렵다면, 종이와 펜을 준비하도록 한다!!

  1. (필수) 쥬피터 노트북에 알고리즘 폴더 만들고 .ipynb 파일 추가하여

    문제 적고, 시행되는지 확인하는 테스트 베드용으로 활영하기

    (프로그래머스에 직접해도 되나, 기록 보관이 어렵고, 남의 답까지 모아놓는 형태로는

    IDE 활용이 필수적이라는 생각이 듬.) - Github, visualstudio, pycharm 등도 추천

  2. (필수) 위 작업 수행시에 실수, 논리 오류로 인해서 에러를

    Jupyter Notebook으로 확인하지 못하는 경우가 생김.

    항상 강조 드리는 **pythontutor**를 꼭 활용할 것!!!


Warming up - 체크 리스트

Python Tutor Time!

 

→ 두 구문의 차이점과 왜 위에는 되고, 아래는 안되는지 답해보기!!

def my_func(): print("My first function!") print("This is a function.") my_func() my_funcs() def my_funcs(): print("My first function!") print("This is a function.")

python tutor로 한 줄씩 읽으면 서 이해해보기!!!

def my_friend(friendName):
	print("{}는 나의 친구입니다.".format(friendName))
my_friend("철수")
my_friend("영미")
더보기

return 구문의 경우 호출한 곳으로 되돌아 가는 것으로 생각하면 된다. 

def my_student_info_list(student_info):
    print("*********************")
    print("* 학생이름:",student_info[0])
    print("* 학급번호:",student_info[1])
    print("* 전화번호:",student_info[2])
    print("*********************")
my_student_info_list(["진수","02","01-987-6543"])
def my_student_info_list(student_info):
    print("*********************")
    print("* 학생이름:",student_info[0])
    print("* 학급번호:",student_info[1])
    print("* 전화번호:",student_info[2])
    print("*********************")
student_info = ["진수","02","01-987-6543"]
my_student_info_list(student_info)
a = 5
def func1():
	a = 1
	print("[func1] 지역 변수 a=",a)

def func2():
	a = 2
	print("[func2] 지역 변수 a=",a)

def func3():
	a = 2
	print("[func3] 지역 변수 a=",a)

def func4():
	global a
	a = 4
	print("[func4] 지역 변수 a=",a)

func1()
func2()
print("전역 변수 a=",a)

func3()
func4()
func3()
반응형