[유튜브 강의]- 센치한 개발자/[알고리즘] 기초 알고리즘 - 일시정지(5)
-
[알고리즘] 5. 카데인(Kadane) 알고리즘 : 최대부분합 구하기
[ 1, -3, -1, 2] 와 같은 수의 나열 "수열"이 있다고 가정했을때 각 수들을 더했을때 가장 큰 수가 나오는 연속된 부분을 찾는 알고리즘을 카데인 알고리즘이라고 한다. 수열 알고리즘의 기초에 해당하는 문제로, 오래전 중등부 경시대회 문제로도 많이 출제되었다고 한다. 풀이의 핵심은, 1. 요소를 하나씩 더하기 2. 더한 값을 변수에 저장 3. 더한 값이 그 마지막 저장해놓은 변수값보다 크면 변수를 대입 이다. 자바 코드로 보자면, int[] nums = {1,-3, -1, 2}; public static int maxSubArray(int[] nums) { //배열길이가 1일떄는 더할것이 없으므로 0번지 그대로 반환 if(nums.length == 1) { return nums[0]; } //해당..
2020.11.04 -
[알고리즘] 4. 비트연산으로 2진수 덧셈 (XOR, AND, Shift, Binary Add)
분명히 공부했는데 분명히 본 적이 있는데 하면서 먼지쌓인 정보처리기사 책을 펼쳤더니 "그래 이거였어! 생각난다" 가 아니라 "내가 이걸 공부해서 합격했었다고..??!!"라는 충격을 먹은 적.. 없으신가요? (저는 오늘) 안녕하세요, 센치한개발자입니다. 이번 알고리즘은 방송없이 2진수 덧셈을 비트연산에 대해서 알아보려고 합니다. (방송으로 하려니 저도 말이 꼬여서.. ) 오늘 "뎃셈 "+" 연산을 사용하지 않고 비트연산을 통해 두 2진수를 더하는 원리를 저도 다시금 익히게 되었습니다. 일단 자바 소스부터 한번 보시죠~ public static void main(String[] args) { System.out.println(addBinaryPlus("1101","1011")); System.out.prin..
2020.10.29 -
[알고리즘] 3. 시간복잡도(BigO) 기초 - 센치한개발자
#센치한개발자 #알고리즘 #코딩테스트 ▶︎ 센치한개발자 강의 구독하기 : https://goo.gl/wPYaXG *. 이번시간은 간단한 예시로 익혀보는 시간복잡도 기초 방송입니다.
2020.09.15 -
[알고리즘] 2. 소수 구하기 문제 - 센치한개발자
#센치한개발자 #알고리즘 #코딩테스트 ▶︎ 센치한개발자 강의 구독하기 : https://goo.gl/wPYaXG *. 이번시간은 특정한 자연수까지 소수가 몇개인지를 구하는 알고리즘입니다. 1차적인 방식의 약수를 통한 소수 구하기 방식과 에라토스테네스의 체 공식을 통한 풀이로 진행합니다.
2020.09.09 -
[알고리즘] 1. 피보나치 수열, 재귀함수, 동적계획법 - 센치한개발자
[알고리즘] - 1. 피보나치 수열, 재귀함수, 동적계획법 - 센치한개발자 #센치한개발자 #알고리즘 ▶︎ 센치한개발자 강의 구독하기 : https://goo.gl/wPYaXG *. 이번시간부터는 알고리즘 학습을 병행하려고 합니다. 알고리즘을 몰라도 개발자로 살아가는데는 문제가 없지만, 알고리즘 방법론을 알아야 더 효율적이고 논리적이고, 좀 더 퍼포먼스적인 로직을 구성할 수 있다고 생각합니다. (그런데 저마저도 공부를 잘 안하고 있었습니다..) 그 첫번째 시간으로 알고리즘 학습으로 입문할 수 있는 가장 기초적인 피보나치 수열을 준비해보았습니다. 여담으로 늦었지만 구독자 1만명 감사의 인사를 정식으로 드립니다~!
2020.09.06