'항해 중' 카테고리의 글 목록 (22 Page)
본문 바로가기

항해 중267

[TIL] 12일차 12일차 시간표 오전 9:00 ~ 체크인 오전 9:00 ~ 오전 10:00 알고리즘 2주차 강의 오전 10:00 ~ 오전 11:00 알고리즘 3문제 선정해서 발표하기 오후 11:00 ~ 오후 2:00 알고리즘 2주차 강의 오후 2:00 ~ 오후 4:00 마음 다잡기 + 점심시간 오후 4:00 ~ 오후 5:00 알고리즘 기초 주차 Test 오후 5:00 ~ 오후 8:00 알고리즘 3주차 강의 오후 8:00 ~ 오후 8:20 팀 마무리 오후 8:20 ~ 하루 정리 + 저녁시간 오늘 하루 느낀 점 1주차 강의 들으면서 시간 복잡도, 공간 복잡고, 점근 표기법 등을 배우면서 이해도 잘 되는 것 같아서 잘 진행하고 있었던 것 같은 데 2주차 강의를 들으면서 배열과 링크드 리스트 문제를 풀기 시작하면서 멘탈이 터지.. 2021. 11. 13.
재귀함수 - 팩토리얼, 회문 검사 👀 재귀란? : 어떠한 것을 정의 할 때 자기 자신을 참조하는 것을 말한다. 👀 재귀함수란? : 자기 자신을 호출하는 함수이다. 👉 예시를 들어서 설명을 하자면 더보기 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었습니다. 🥺 "재귀함수가 뭔가요?" 🥸 "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네. 그런데 어느날, 그 선인에게 한 선비가 찾아와서 물었어. 🥺 "재귀함수가 뭔가요?" " 🥸 잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을... 그렇다면 재귀 함수를 사용하는 이유는 무엇일까요?? 바로, 재귀 함수를 이용해서 간결하고 효.. 2021. 11. 13.
이진 탐색, 순차 탐색 👀 이진 탐색이란? : 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘입니다. 배열의 중앙에 있는 임의의 값을 선택하여 찾고자 하는 값 X와 비교합니다. X가 중간 값보다 작으면 중간 값을 기준으로 좌측의 데이터들을 대상으로 X가 중간 값보다 크면 중간 값을 기준으로 우측의 데이터들을 대상으로 다시 탐색합니다. 동일한 방법으로 다시 중간의 값을 임의로 선택하고 비교하여 해당 값을 찾을 때까지 이 과정을 반복합니다. 👀 순차 탐색이란? : 데이터가 담겨이는 배열을 앞에서 부터 하나씩 비교해서 원하는 데이터를 찾는 방법 👉 이진 탐색과 순차 탐색 과정 비교 👉 업다운 게임을 예로 들어 이진 탐색과 순차 탐색을 비교 해보겠습니다. 👉 순차 탐색을 사용한 예제 풀이 finding_target = .. 2021. 11. 13.
클래스, 객체, 생성자, 메소드 👀 클래스란? : 클래스는 분류, 집합과 같은 속성과 기능을 가진 객체를 총칭하는 개념이다. 👀 객체란? : 세상에 존재하는 유일무이한 사물입니다. 예를 들어 클래스가 사람이라면, 객체는 유재석이 될 수도 있고, 박명수가 될 수도 있습니다. 클래스가 동물이라면, 객체는 강아지가 될 수도 있고, 고양이가 될 수도 있습니다. 이처럼 클래스를 이용하면 같은 속성과 기능을 가진 객체들을 묶어서 정의 할 수 있습니다. class Person: pass # 여기서 pass 는 안에 아무런 내용이 없다는 의미입니다! person_1 = Person() print(person_1) # # 클래스를 호출해서 person_1이라는 객체를 생성한다. person_2 = Person() print(person_2) # # 클.. 2021. 11. 13.
Array(배열), Linked List(리스트), 둘의 차이점 자료구조와 알고리즘은 왜 배워야 하는 것일까? : 특정 자료구조는 삽입/삭제가 빠르고, 특정 자료구조는 조회가 빠릅니다. 이처럼 어떤 경우에는 이 자료구조가 좋고, 어떤 경우에는 저 자료구조가 좋은 것 처럼 경우에 따라 다양한 자료구조와 알고리즘을 사용 해야 합니다. 비유를 하자면 못을 박을 때 망치가 필요하고, 나사를 뺄 때는 뺀치가 필요한 것처럼 다양한 공구들을 하나하나 배워 나가는 것이라고 생각하면 됩니다. 1. 어레이(Array), 배열 상황으로 어레이를 설명 해보자면! 상황에서 언급된 "캡슐 호텔'이란 바로 Array, 배열을 의미합니다. 👀 여러분이 캡슐 호텔을 만들었습니다! 총 8명이 잘 수 있는 호텔입니다. 와 그런데 이게 무슨일일까요? 오늘 밤에 소녀시대 8명 전원이 와서 숙박할 계획이라.. 2021. 11. 13.
소수 나열하기, 문자열 뒤집기 [소수 나열하기] 문제설명 정수를 입력 했을 때, 그 정수 이하의 소수를 모두 반환 하시오. (소수는 자신보다 작은 두 개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수이다.) 의사코드(수도코드) - 소수를 담을 배열 -> primeArr = [] - for문을 사용하여 소수인 지 아닌 지 판별 https://inten.tistory.com/entry/Python-3x-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%86%8C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0 [Python 3.x] 파이썬 소수 구하기 오늘은 파이썬으로 소수 구하는 방법을 구현 할 것입니다. 소수란 자신보다 작은 두 개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수이다. 여기서 소수를 구하.. 2021. 11. 12.
곱하기 or 더하기, 반복되지 않는 숫자 [곱하기 or 더하기] 문제설명 0 혹은 양의 정수로만 이루어진 배열이 있을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 '✕' 혹은 '+' 연산자를 넣어 결과적으로 가장 큰 수를 구하는 프로그램을 작성하시오. 단, '+' 보다 '✕' 를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서 순서대로 이루어진다. 의사코드(수도코드) - 총합을 구하는 변수 -> sum = 0이 필요 - 반복문을 돌면서 요소를 하나씩 빼온다. - sum에 요소를 더하거나 곱할 때 sum이 더 큰 연산을 실행한다. (0, 1에는 무조건 + 연산을 해야 한다.) (0, 1에 곱하기 연산을 진행 하는 것보다 더하기 연산을 하는 게 sum이 더 크기 때문에) - 총합을 return 한다. 문제 풀이 i.. 2021. 11. 12.
점근 표기법(+배열에서 특정 요소 찾기) 점근 표기법이란? 알고리즘의 성능을 수학적으로 표기하는 방법이다. 알고리즘의 "효율성"을 평가하는 방법이다. (아 이 알고리즘 좋던데? 이렇게 말하는 게 아니라 점근 표기법을 사용해서 얼마나 효율적인 지 얼마나 비효율적인 지에 대해서 평가를 쉽게 할 수 있는 방법이다.) 점근 표기법(asymptotic notation)은 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현하는 수론과 해석학의 방법이다. 지금까지 이 함수는 N 정도의 시간과 공간이 걸리겠구나 하면서 분석 했던 게 점근 표기법의 일종이라고 할 수 있다. 점근 표기법의 종류에는 빅오(Big-O)표기법, 빅 오메가(Big-Ω) 표기법이 있습니다. 빅오 표기법은 최악의 성능이 나올 때 어느 정도의 연산량이 걸릴 것인지, 빅오메가 표기법은 최선의 .. 2021. 11. 12.
공간 복잡도 판단하기 공간 복잡도란? : 입력값과 문제를 해결하는 데 걸리는 공간과의 상관 관계를 말한다. (입력값과 결과값이 나오는 데까지 사용하는 공간을 말한다.) 입력값이 2배로 늘어났을 때 문제를 해결하는 데 걸리는 공간은 몇 배로 늘어나는 지 보는 것이다. 우리는 공간이 적게 걸리는 알고리즘을 좋아하니 입력값이 늘어나도 걸리는 공간이 덜 늘어나는 알고리즘이 좋은 알고리즘이다. 공간 복잡도를 계산 할 때는 저장하는 데이터의 양이 1개의 공간을 의미합니다. 첫번째 방법에서 공간 복잡도를 계산 해보자면 def find_max_occurred_alphabet(string): alphabet_array = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", ".. 2021. 11. 12.
728x90