알고리즘(6)
-
[알고리즘] 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 -
정보처리기사 실기 최근 기출경향 분석
정보처리기사 실기 시험을 치르면서 최근 기출 경향으 분석할 필요가 있어 보이기에 이렇게 기출 분석을 하고자 합니다. 1. 알고리즘 기존 기출문제 응용을 벗어나지 못하고 있습니다. 출제 비중은 정렬, 배열, 진법 이렇게 3가지가 70% 이상을 차지하고 있습니다. 정렬의 경우에는 선택정렬, 버블정렬, 삽입정렬이며, 배열을 거의 2차원배열(가로, 세로 표처럼 생긴)로, 진법은 특정 진수를 다른 진수로 변환하는 것입니다. 이번 2012년 1회와 2회 시험은 2차원 배열이 나왔습니다만, 2회같은 경우는 제가 예상했던대로 배열과 정렬 혼합문제가 출제되었습니다. 디버깅을 꼭하라고 하지만, 저는 디버깅 연습을 안했습니다;;; 디버깅을 하면 내가 한것이 맞는지 틀린지 알 수 있어서 분명히 해야하는 작업이 맞습니다. 변수..
2012.07.09