본문 바로가기

뇌세포덩어리""/알고리즘

(8)
탐색 (선형 / 이진 / 이진트리) def linear_search(list, find_key): for i in range(len(list)): if list[i] == find_key: return i return "not find" def binary_search(list, find_key): mid = len(list)//2 while True: if list[mid] == find_key: return mid elif list[mid] < find_key: mid += mid/2 if mid >= len(list): mid = len(list)-1 else: mid -= mid/2 if mid/2 == 0: mid = 0 class binary_tree: value = 0 left = None right = None def __i..
정렬 알고리즘 ( 버블 / 선택 / 삽입 / 퀵) 파이썬을 간단하게 짠 정렬들... 원리만 알면 구하기 쉬움. def bubble(list): for i in range(len(list)): for j in range(len(list)): if list[i] < list[j]: list[i], list[j] = list[j], list[i] return list def selection(list): for i in range(len(list)): min_temp = i for j in range(i, len(list)): if list[min_temp] > list[j]: min_temp = j list[i], list[min_temp] = list[min_temp], list[i] return list def insertion(list): for i ..
중복되는 가장 긴~ 문자열 찾기 알고리즘(2) 문자열 S를 함수에 집어 넣으면 중복되는 부분문자 중에 가장 긴 부분문자를 리턴해라 ex) aaabcabcab => aaabcabcab =aaabcabcab 다음과 같이 가장 길은 부분문자열은 abcab이다 [출처] 2009/10/17 Daum Coding Test |작성자 JunSu import java.util.Hashtable;import java.util.Vector; public class test3 {public static void main(String[] args) {String str = "aaabcabcab";//연산할 문자열Vector v = new Vector(); //겹치지 않는 부분문자 벡터집합Vector v2 = new Vector();//2개이상 똑같은 부분문자 벡터집합Has..
정수 뒤집기 알고리즘(1) 그냥 심심해서 코딩 테스트 문제를 풀어봣음...-_-; 1. 입력된 정수를 역순으로 반환하는 함수를 작성하시오 123456입력이면 654321반환, 1230이면 321반환 1) +,-,*,/,% 연산자만을 사용하시오. (수학/문자열 함수 등은 사용 불가) 2) 변환을 위해 문자열이나 배열을 사용할 수 없음 3) 잘못 된 답이 출력되지 않도록 합니다. 정답을 만들 수 없는 경우 에러를 출력 4) 문제에 정의되지 않은 상황이 있다면 답안에 주석으로 정의 -0- 답은 제약사항 첫번째에서 주어줬네. 뭐. public class test { public static int reverse(int input) throws Exception{ int iReturn = 0; while(input !=0){ iReturn..
유클리드 거리, 마할라노비스 거리 유클리디안 거리(Euclidean distance)는 다차원 공간에서 두 점 간의 거리를 구합니다. 이 거리는 자로 측정한 거리의 일종입니다. 두 점을 (p1, p2, p3, p4,...)와 (q1, q2, q3, q4, ...)로 표기한 경우 유클리디안 거리 공식은 아래와 같습니다. 유클리디안 거리를 사용하면 두 항목의 유사도를 계산할 수 있습니다. - 두점에서의 공통 축의 절대값들의 덧셈이라 생각하면 됨. 마할라노비스 거리 내가 수업시간에 배운건 요식이다. 찬찬히 비교해보면 똑같다 (전치행렬이 앞으로 온거빼고는 같다.) 클러스터링에서의 표본들의 벡터 계산법할때 잠시 배운건데 언젠가 또 쓸거 같은 기분에 글을쓴다~ - 어디에선가 보고 쓴글인데 출처가 어디인지를 모르겠습니다. 혹시 아시면 댓글좀.
이해가안되는알고리즘..=-= 누워서 읽는 알고리즘을 읽고잇는데..-0- 아무리 생각해도..-0-난이해가안간다.. "옛날에 어느 나라에 승려들만 모여 사는 섬이 있다. 그들 중에서 어느 사람은 눈이 빨갛고 어느 사람은 눈이 갈색이다. 눈이 빨간 사람은 마법에 걸려 있기 때문에 스스로 눈이 빨갛다는 사실을 깨닫게 되면 그 날밤에 12시에 스스로 목숨을 끝어야만한다.(마법이기떄문에 예외가없다) 승려들은 서로의 눈 색깔에 대해 전혀 언급하지 않는다는 불문율이 있었기에 상대방의 눈 색깔을 알려줄 수없고, 거울과 거울비슷한 물건도 없었기에 자신의 눈이 무슨 색인지 아는 사람은 아무도 없다. 그러더 ㄴ어느날 섬에 관광객이 왔다. 그는 승려들 사이에 존재하는 규칙을 알지 못했지게 무심코 내뱉고 말았다. - 당신들 중에서 적어도 한명은 눈이 빨간색..
깊이-너비 탐색 = 난좀짱인듯?ㅋㅋ 후아~-0-레포트라서..신나게하긴했는데;;-0-뭐야이거;; 다익스트라보다더어려웟떤거같다..-0- 깊이탐색에서..10시간을헤맨끝에... 초기화를한번않했따고..-0-무한루프를돌았었따..후..-0-주겨벌라.. 그떄문에...이클립스디버깅씨와8시간을대화를했네... 근데...너비탐색은..한시간만에완성은뭐냐;;-0-ㅋㅋ 후...다른알고리즘들도해야되는데..뭐~오랜만에머리써서좋아요~^-^ㅋㅋ그래프가 다음과 같을때의 깊이 너비 탐색.(편의상 소스에서는 0부터 시작했고 표현은 1부터 시작했습니다.)
여행비용알고리즘(The Trip) =-=후아~첨에이게먼 문제인가를 생각만 30분을 했네..=-= 글좀쉽게써주지..ㅋㅋ 그냥계산만하면되는 쉬운 문제로 생각했는데...흠...-0-한시간이나걸렸네?ㅎㅎ 이번에소수점반올림에대해서알아서기쁘다..-0-(신기했어;;ㅋㅋ) 이젠..동적배열하고...버퍼리더는..그냥들어가는구나..-0-후.. --표준 입력을 통해 여러 번의 여행에 대한 정보가 입력된다. 각 여행은 여행에 참가한 학생수를 나타내는 정수 n으로 구성되며 이 정수 밑으로는 n개의 줄이 입력되는데, 각줄에는 달러와 센트 단위로 각 학생이 지출한 경비가 입력된다. 학생수는 1000명을 넘지 않으며 어떤 학생도 $10,000.00 이상 지출하지 않는다. 각 여행에 대해 각 학생이 사용한 금액이 똑같아지기 위해 전달되어야 하는 금액의 총합을 출력한다...