Algorithm21 [Java] 69. Sqrt(x) 문제 설명 : int 값이 하나 주어지고, 이 int 값의 제곱근(제곱근이 소수인 경우 소수점 이하는 버림)을 구하는 문제이다. class Solution { public int mySqrt(int x) { if(x == 0) return 0; long left = 0; long right = x; while(left x){ right = mid - 1; } } return (int)right; } } 해설 : - 이 문제도 unlike가 상당히 많은 문제인데, 역시나 조건이 명확치 않다. - 처음에는 완전탐색으로 해결하려했으나, 테스트 케이스 중 Integer 범위를 넘어가는 케이스가 있었고, Long type으로 변환했으나 runtime error가 발생하는 것으로 보아 애초에 완전탐색으로 풀지 못하.. 2023. 6. 9. [Java] 67. Add Binary 문제 설명 : 문자열로 구성된 두 2진수를 2진법으로 계산하여 결과를 문자열로 출력하는 문제 class Solution { public String addBinary(String a, String b) { Stack stackA = new Stack(); Stack stackB = new Stack(); Stack stack = new Stack(); HashMap map = new HashMap(); StringBuffer buffer = new StringBuffer(""); for(int i=0; i 2023. 6. 8. [Java] 66. Plus One 문제 설명 : - 1자리의 숫자들이 담겨있는 int array digits이 존재한다. 이 array에서 각 숫자들의 위치가 곧 자리수가 되어 10진수처럼 생각해보자. - 마지막 1의 자리 숫자에 1을 더한 결과가 되는 10진수를 다시 int array에 자리수에 맞춰 할당하여 return한다. class Solution { public int[] plusOne(int[] digits) { //digits의 숫자를 하나씩 뽑아 자리수에 배정하고, 마지막에 +1을 더한 값을 다시 배열로 할당 //digits의 각 자리 합이 int의 범위를 넘을 수 있음. StringBuffer buffer = new StringBuffer(""); boolean check = true; int[] dummy = new i.. 2023. 6. 8. [Java] 35. Search Insert Position 문제 설명 : - 1차원 int 배열과 target 숫자를 주고, target이 배열내에 존재하면, 해당하는 Index를 return - 존재하지 않으면, 정렬에 맞춰 삽입되어야 하는 index를 return하는 문제이다. - 조건으로는 시간복잡도가 O(log n) 보다 작아야하는 조건이기 때문에 이진탐색과 해시맵 등을 활용할 수 있는데, 이진탐색으로 해결해보았다. class Solution { public int searchInsert(int[] nums, int target) { //binary search :: O(log N) int left = 0; int right = nums.length -1; while(left 2023. 6. 8. 이전 1 2 3 4 5 6 다음