Algorithm 20

Algorithm 이분검색, 이진검색, 이분탐색, 이진탐색

2분 검색? 2분만에 검색하기!!!!???? 하하하하하하 아니죠 두 이, 나눌 분 두개로 나눠서 검색한다~ 맞습니다 하하하하 이분검색을 알았을 때 정말 깜~짝 놀랐다 이런 상큼한 방법이 있다니 ! 오늘은 ~ 상큼빵큼한 이분검색에 대해 기록해보자!!! 아하하하 설명 이분검색은 정렬된 데이터를 반씩 쪼개가며 원하는 데이터를 찾다. [ 1, 2, 3, 4, 5, 6, 7, ] 1부터 7까지의 수중에 5의 위치를 찾는경우 for문을 돌려 1부터 7까지 하나하나 찾기 시작하면, 시간복잡도는 O(n)이다. 전체를 다 뒤져야하기 때문이다. 이분검색은 다르다. 전체를 하나하나 검색하지 않고, 최소한의 수를 찾아가며 검색하기 때문이다. 1) 1과 7의 중간 숫자인 4를 찾는다. 2) 중간숫자인 4와 찾는 숫자 5의 크기..

[Algorithm] Sorting Algorithm/정렬 알고리즘이란?(버블정렬, 선택정렬, 삽입정렬)

정렬(sort)알고리즘이란 ? 두개 이상의 데이터를 비교해 원하는 순서대로 정렬하는 알고리즘이다.(오름차순, 내림차순) 주로 불규칙한 데이터들을 정렬한 다음 탐색해야하는 경우에 정렬 알고리즘을 사용한다. 정렬알고리즘의 종류는 매우 다양하다. 버블, 삽입, 선택, 힙, 퀵, 기수 등. 그 중 버블정렬, 삽입정렬, 선택정렬에 대해 기록할 것이다. 1. 선택정렬 선택정렬은 주어진 데이터들 중 현재위치(0번방)에 맞는 데이터(가장작은수)를 찾아 데이터간의 위치를 swap하는 방식이다. (가장작은 수를 찾아와서 앞에둔다. 반복) 오름차순을 예시로 들 경우, 1) 모든 데이터들 중 0번째방에 들어올 가장 작은 데이터를 찾는다. 2) 0번째방에 들어있던 데이터와 가장작은 데이터를 교환한다. 3) 1번째방에 들어올 두..

JAVA ☜ 문자찾기 ((코딩테스트, 코테, 자바 기초코딩테스트, 자바 초급 코딩테스트, 자바 기초문제, 인프런))

문제 : 한개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내기 입력: 첫줄 - 문자열 두번째줄 - 문자 #문자열은 영어 알파벳으로만 구성되어있다. 대소문자를 구분하지 않는다. 문자열의 길이는 100을 넘지 않는다. 예시 : 첫줄 - Computercooler 두번째줄 - c 출력 예시 : 2 첫줄에 입력된 문자열에, 두번째에 입력한 문자가 몇개 존재하는지 조사해서 출력해주면된다. Computercooler에는 C가 두게가 있기 때문에 2가 출력되면된다. 첫번째 풀이 - 확장 for문 - String 클래스 메소드 : toUpperCase() //모든 알파벳 대문자화 toCharArray()// 문자열을 char배열화 toCharAt() // Stri..

JAVA ☜ 삼각형만들기, 역삼각형만들기, 피라미드쌓기 ((자바 코딩테스트, 코테, 자바기초코딩테스트, 자바 초급 코딩테스트, 자바 기초문제 ))

삼각형만들기 ! 피라미드만들기 ! 아마 자바를 공부하는 거의 대부분의 사람들이 자바 초급을 공부할 때 풀어보는 문제가 아닐까 싶다. 왜? for문, 중첩for문 공부할 때 찰떡같은 문제니까! 오늘은 세가지의 삼각형을 만들어 볼 것이다. 직각삼각형, 역직삼각형, 피라미드(이등변) 삼각형. 많이들 헤메는 문제인데, 이는 어려워서 헤메이기보다는 단순하게 생각하기 때문인것 같다. 1. 직각삼각형 만들기 class Main{ public static void main(String args[]){ int n =10; for (int height=1 ; height

JAVA ☜ 알람시간구하기 ((자바 코딩테스트, 코테, 자바기초코딩테스트, 자바 초급 코딩테스트))

문제를 풀어보시고, 여러분이 작성/발견한 코드를 댓글에 공유해주세요 ! 다양한 코드를 나누며 함께 성장해요 ! 문제 ) 원하는 기상시각보다 45분 일찍 알람이 울리게 할것이다. 기상시각을 입력하면, 기상시각보다 45분 빠른 시간이 출력되도록 하자. 시간표기법은 12시 표기식이 아닌, 24 표기식으로 출력되게 하자. 풀이) class Main{ static int hour = 1; static int minute = 5; static int earlyM = 45; public static void main(String args[]){ int purposeTime = hour*60+minute-earlyM; //45분 이른 시간을 구하는 식 if ( hour==0 ){ //마이너스 값이 나오는것을 방지 pu..

JAVA ☜ 학점구하기 ((자바 코딩테스트, 코테, 자바기초코딩테스트, 자바 초급 코딩테스트))

문제를 풀어보시고, 여러분이 작성한 코드를 댓글에 공유해주세요 ! 다양한 코드를 나누며 함께 성장해봅시다. 문제 ) 필드에 직접 점수를 선언해주고, 선언해준 점수가 90 ~ 100 이면 출력 값 은 : A 80 ~ 90 이면 출력 값 은 : B 70 ~ 80 이면 출력 값 은 : C 60 ~ 70 이면 출력 값 은 : D 그 외 점수 이면 출력 값 은 : F 가 출력되게 하라. 점수의 범위 : 0