본문 바로가기

algorithm/개념 공부2

[JAVA] 간단하게 진법변환하기, 숫자 reverse 간단한 진법 변환 코드입니다. 연습 겸 한번 짜본 내용입니다. 예시로 든 진법이 아니더라도 원하는 숫자로 바꾸시면 변환 가능합니다! 10진법 숫자를 2진법으로 변환 10진법 숫자 14를 2진법으로 바꾸면 1110이 됩니다. 식 값 나머지 14 / 2 7 0 7 / 2 3 1 3 / 2 1 1 1 / 2 0 1 주어진 값을 2로 나눈 나머지를 문자열에 더해갑니다. 이때 뒤에서부터 더해가야 하기에 새로 더해주는 값은 문자열의 앞에 더해줘야 합니다. int num = 14; String ans = "";//값을 더해주기 위한 빈 문자열 선언 while (num > 0) { ans = (num % 2) + ans;//문자열의 앞에 num을 2로 나눴을 때의 나머지를 더해준다. num /= 2;//다음 턴을 위해.. 2020. 5. 4.
다익스트라 vs 크루스칼 비교 (java) 다익스트라 크루스칼 구현 방법 우선순위 큐 + dist(점화식) 우선순위 큐 + Union-Find 중심 정점 중심 간선 중심 시작점 출발점이 정해져 있는 경우 간선의 가중치가 가장 작은 것부터 시작한다 큐에 넣는 시점 dist가 갱신 될 때에만 그 점에서 출발하는 간선을 우선순위 큐에 넣어준다. 모든 정점을 우선순위 큐에 넣고 시작한다 용도 점과 점 사이의 거리를 구할 경우 최소 신장 트리를 그릴 때 끝 점과 점 사이의 최단 거리를 찾고 나면, 더이상 탐색하지 않는다. 목적에 따라 끝까지 그릴 수도 있다. 최소 신장 트리가 만들어 질 때까지(모든 점들이 다 이어질 때 까지) 탐색한다. 두 덩이일 경우 한 덩이만 그려지고 다른 한덩이는 그려지지 않는다(이어져 있지 않기 때문에) 간선 중심이므로 끝까지 가.. 2020. 2. 1.