하지의 코딩일지33 이진 탐색 트리 왼쪽 자식 노드의 키는 부모 노드의 키보다 작음 오른쪽 자식 노드의 키는 부모 노드의 키보다 큼 각각의 서브 트리도 이진 탐색 트리를 유지 중복된 키를 허용하지 않음 이진 탐색 트리의 특징 이진 탐색 트리 규칙에 의해 데이터가 정렬됨 이진 트리에 비해 탐색 빠름 (균형 유지 필요) -균형 상태 : O (log N) -불균형 상태 : O (N) 이진 탐색 트리 -탐색 찾고자 하는 데이터를 루트 노드부터 비교 시작 대소 비교를 하여 찾는 데이터가 작으면 왼쪽, 크면 오른쪽 노드로 이동 찾는 데이터가 없으면 null을 반환 어떤 데이터를 찾더라도 최대 트리 높이만큼의 탐색이 이루어짐 이진 탐색 트리 - 삽입 Root 부터 비교 시작(중복 키 발견 시 노드 추가하지 않고 종료) 삽입할 키가 현재 노드의 키보다 .. 2023. 8. 3. 요세푸스 문제 1번부터 N번까지의 사람이 동그랗게 모여서 앉아있습니다. 1번부터 순서를 세어 K 번째 사람을 모임에서 제외시킵니다. 남은 N-1명에서 이번에 제외된 다음 사람부터 원을 따라 다시 순서를 세서 K번째 사람을 모임에서 제외하는 과정을 마지막 사람이 남을 때까지 반복합니다. 이때 마지막으로 남는 사람의 번호를 구하는 프로그램을 구현하세요 class Solution { public int solution(int N, int K) { // 마지막으로 남은 사람의 번호를 구하는 함수 호출 return josephus(N, K); } // 재귀적인 방법으로 요세푸스 문제를 해결하는 함수 private int josephus(int n, int k) { if (n == 1) { return 1; // 마지막으로 남은.. 2023. 7. 30. XOR를 이용한 이진수 뒤집기 두 정수 A와 B를 이진수로 표현했을 때, A를 B로 바꾸기 위해 뒤집어야 하는 비트의 개수를 구하는 문제를 해결하기 위해서는 XOR 연산을 활용할 수 있습니다. XOR 연산은 두 비트가 다를 때 1을 반환하고, 같을 때 0을 반환합니다. 두 정수 A와 B를 XOR 연산한 결과를 이진수로 표현하면, A와 B의 이진수 표현에서 서로 다른 비트들이 1로 표시됩니다. 그리고 이 1의 개수가 A를 B로 바꾸기 위해 뒤집어야 하는 비트의 개수가 됩니다 class Solution { public int solution(int A, int B) { int xorResult = A ^ B; int count = 0; // XOR 결과에서 1의 개수를 세기 while (xorResult > 0) { if ((xorRes.. 2023. 7. 30. 계산 순서에 따라 계산하기 테스트 사칙연산 기호에 맞춰 계산하는 테스트 import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; class Solution { public double solution(String s) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); try { Object result = engine.eval(s); double doubleResult = Double.parseDouble(result.toString(.. 2023. 7. 30. 프로그래머스 코딩 테스트 메모장 Arrays.copyOfRange() 메서드는 다음과 같이 사용됩니다: javaCopy code public static T[] copyOfRange(T[] original, int from, int to) original: 원본 배열 from: 복사를 시작할 인덱스 (이 인덱스를 포함하여 복사) to: 복사를 끝낼 인덱스 (이 인덱스는 포함하지 않음) Arrays.copyOfRange() 메서드는 from 인덱스부터 to-1 인덱스까지의 요소를 복사하여 새로운 배열을 생성하고 반환합니다. from과 to는 배열의 유효한 인덱스 범위 내에서 지정되어야 합니다. 2023. 7. 29. 힙(Heap) 2023. 7. 18. 이전 1 2 3 4 ··· 6 다음 728x90