일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 2진수
- 비교연산
- 출력
- 선택실행구조
- bitwise
- Docker
- 비트단위논리연산
- OpenCV
- 기초100제
- 코드업
- 반복실행구조
- 문자열
- 8진수
- 논리연산
- 입출력
- codeup
- 불 자료형
- face recognition
- 진수
- 딥러닝
- 파이썬
- 산술연산
- 기초 100제
- 2차원배열
- 16진수
- 아스키코드
- input()
- 10진수
- 불 연산
- 종합
- Today
- Total
목록
728x90
반응형
SMALL
알고리즘 (96)
DeepFlowest
본 포스팅은 칸 아카데미 컴퓨터 과학 강좌의 알고리즘 단원을 공부하고 정리한 내용입니다. 1. 이진 검색 정렬된 리스트에서 원하는 항목을 찾기에 효율적인 알고리즘. 후보 범위가 한 항목으로 좁아질 때까지 찾고자 하는 항목을 포함하고 있는 리스트를 반으로 나누는 과정을 계속 반복함. 배열에서 어떤 항목을 찾아야 할 때 가장 많이 사용함. 1) 배열에 이진 검색 구현하기 의사코드 ( 출처 : ko.khanacademy.org/computing/computer-science/algorithms/binary-search/a/implementing-binary-search-of-an-array ) 입력값 : array 배열 array의 요소의 개수 : n 검색 대상의 수 : target 결과값 : array 속 ..
1. 1부터 n까지 연속한 숫자의 합을 구하는 알고리즘 입력: n 출력: 1부터 n까지의 숫자를 더한 값 방법 1) def sum_n(n): result = 0 for i in range(n+1): result+=i return result print(sum_n(10)) print(sum_n(100)) =================================== 결과 : 55 5050 방법 2) def sum_n(n): result = (n*(n+1))/2 return int(result) print(sum_n(10)) print(sum_n(100)) =================================== 결과 : 55 5050 2. 최댓값을 구하는 알고리즘 입력: 숫자가 n개 들어 있는 리..
문제 : 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자. [참고] 가로번호, 세로번호를 사용할 수 있는 2차원 배열을 사용하면 이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다. 답 : 오답 : for 문을 하나만 쓰면 다음과 같이 리스트 형식으로 나오기 때문에 for 문을 하나 더 써줘서 안에 있는 요소들을 꺼내주어야 한다. 정답 코드의 두번 째 for문 마지막 줄에 print() or print('')를 하게 되면 리스트 안에 요소가 출력 된다. 코드 : https://github.com/Yearang-Lee/Algorithm/tree/master/CodeUp Yearang-Lee/Algo..
문제 : 출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자. [참고] 배열에 순서대로 기록해 두면, 기록된 내용을 모두 검사해 가장 작은 값을 찾아내면 된다. 그런데, 가장 작은 값은 어떻게 어떤 것과 비교하고 찾아야 할까? 답 : 방법1 방법2 코드 : https://github.com/Yearang-Lee/Algorithm/tree/master/CodeUp Yearang-Lee/Algorithm Contribute to Yearang-Lee/Algorithm development by creating an account on GitHub. github.com
문제 : 출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자. [참고] 배열에 순서대로 기록해 두고, 기록된 내용을 거꾸로 출력하면 된다. 답 : 코드 : https://github.com/Yearang-Lee/Algorithm/tree/master/CodeUp Yearang-Lee/Algorithm Contribute to Yearang-Lee/Algorithm development by creating an account on GitHub. github.com
문제 : 출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자. 답 : count()는 리스트에 포함된 요소 x의 개수를 세는 함수이기 때문에 b의 input 값을 리스트로 받았다. 코드 : https://github.com/Yearang-Lee/Algorithm/tree/master/CodeUp Yearang-Lee/Algorithm Contribute to Yearang-Lee/Algorithm development by creating an account on GitHub. github.com
문제 : 같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가 매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까? 예를 들어 3명이 같은 날 가입/등업하고, 각각 3일마다, 7일마다, 9일마다 한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다. 답 : 정답 : while (day%a != 0 or day%b != 0 or day%c != 0) : → 조건과 반대인 조건을 적어주고 ( 계속 최소공배수를 찾지 못하니까) day += 1을 하면 최소공배수를 찾고 실행을 끝낼 수 있다. 오답 : 문제점1 : 코드는 돌아갔지만 너무 길다. 문제점2 : 정해진 범위때문에 99 97 100같은 큰 수에는 답이 나오지 않는다...
문제 : 어떤 규칙에 따라 수를 순서대로 나열한 것을 수열이라고 한다. 예를 들어 1 -1 3 -5 11 -21 43 ... 은 1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다. 이런 이상한 수열을 알게 된 영일이는 또 궁금해졌다. "그럼.... 13번째 나오는 수는 뭘까?" 영일이는 물론 수학을 아주 잘하지만 이런 문제는 본 적이 거의 없었다... 그래서 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다. 시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때, n번째 수를 출력하는 프로그램을 만들어보자. 답 : 방법1 방법2. for 문 방법3. while 문 코드 : https://github.com/Yearang-..