본문 바로가기

Java68

[리트코드][Java] 88. Merge Sorted Array 병합 정렬 Contents 문제 설명 두 개의 오름차순 정수 배열 'nums1'과 'nums2', 두 개의 정수 'm'과 'n'이 각각 'nums1'과 'nums2'의 요소를 나타냅니다. 'nums1과 nums2'를 하나의 배열로 병합하여 감소하지 않는 순서로 정렬합니다. 최종 정렬된 배열은 함수에 의해 반환되지 않고 배열 'nums1' 안에 저장되어야 한다. 이를 수용하기 위해 'nums1'의 길이는 'm + n'이며, 여기서 첫 번째 'm' 요소는 병합되어야 하는 요소를 나타내고 마지막 'n' 요소는 '0'으로 설정되어 무시되어야 한다. 'nums2'의 길이는 'n'이다. 예시 Example 1: Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 Outp.. 2023. 1. 4.
[리트코드][Java] 1. Two Sum 두개의 합 Contents 문제 설명 정수의 배열 nums와 정수 target이 주어졌을 때, 두 숫자의 인덱스를 반환하여 합계가 'target'이 되도록 합니다. 각 입력에 정확히 하나의 솔루션이 있다고 가정할 수 있으며, 동일한 요소를 두 번 사용할 수 없습니다. 답변은 임의의 순서로 반환할 수 있습니다. 예시 Example 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] Explanation: Because nums[0] + nums[1] == 9, we return [0, 1]. Example 2: Input: nums = [3,2,4], target = 6 Output: [1,2] Example 3: Input: nums = [3,3], target = 6.. 2023. 1. 4.
[리트코드][Java] 53. Maximum Subarray 하위배열의 최댓값! Contents 문제 설명 주어진 정수 배열 nums에서 최대값인 하위배열을 찾고 그것을 반환하라. 예시 Example 1: Input: nums = [-2,1,-3,4,-1,2,1,-5,4] Output: 6 Explanation: The subarray [4,-1,2,1] has the largest sum 6. Example 2: Input: nums = [1] Output: 1 Explanation: The subarray [1] has the largest sum 1. Example 3: Input: nums = [5,4,-1,7,8] Output: 23 Explanation: The subarray [5,4,-1,7,8] has the largest sum 23. 문제 풀이 이진 최대공약수 알.. 2023. 1. 4.
[리트코드] 520. Detect Capital 대문자를 찾아라 Contents 문제 설명 다음과 같은 경우 중 하나가 해당될 때 단어의 대문자 사용을 올바른 것으로 정의한다. 이 단어의 모든 문자는 "USA"처럼 대문자입니다. 이 단어의 모든 문자는 "letcode"처럼 대문자가 아닙니다. 이 단어의 첫 글자만 "Google"처럼 대문자입니다. 문자열 단어가 주어지면, 대문자의 사용이 올바른 경우 true를 반환합니다. 예시 Example 1: Input: word = "USA" Output: true Example 2: Input: word = "FlaG" Output: false 문제 풀이 class Solution { public boolean detectCapitalUse(String word) { return word.matches("[A-Z]*|[A-Z].. 2023. 1. 2.
[리트코드] 217. Contains Duplicate 중복이 포함 Contents 문제 설명 주어진 integer 배열 nums는 배열에서 어떤 값이 2번 나타날 때 true를 반환한다. 그리고 모든 요소가 중복되지 않으면 false를 반환한다. 예시 Example 1: Input: nums = [1,2,3,1] Output: true Example 2: Input: nums = [1,2,3,4] Output: false Example 3: Input: nums = [1,1,1,3,3,4,3,2,4,2] Output: true 문제 풀이 1. List 정렬 사용 class Solution { public boolean containsDuplicate(int[] nums) { Arrays.sort(nums); for(int i = 0; i < nums.length - 1.. 2023. 1. 2.
[리트코드] 232. Implement Queue using Stacks 스택을 사용하여 큐를 구현하라 Contents 문제설명 먼저 들어온 것이 먼저 나가는 (선입선출) '큐'를 오직 두가지 스택을 사용해서 구현하라. 구현된 큐는 모든 큐의 기능에 사용할 수 있다(push, peek, pop, empty) MyQueue 클래스 구현: void push(int x)는 x를 큐의 뒤로 밀어낸다. int pop()은 큐의 맨 앞의 요소를 제거하고 그것을 반환한다. int peek()은 큐의 맨 앞의 요소를 반환한다. boolean empty()은 만약 큐가 비어있으면 true를 반환하고, 비어있지 않다면 false를 반환한다. Notes: 반드시 스택의 표준 운영만을 사용하세요. 즉, 맨 위에서 밀어내기, 맨 위에서 보기/팝하기, 크기 및 빈 작업만 사용할 수 있습니다. 언어에 따라 스택이 기본적으로 지원되지.. 2023. 1. 2.
[JAVA] 백준 1110번 (더하기 사이클) 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 예시 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. 입력: 첫째 줄에 N이 .. 2022. 10. 22.
[JAVA] 문자열에서 숫자를 찾아.. 문제 문자열에서 숫자를 모두 찾아 더한 뒤에 해당 값을 문자열의 길이로 나눈 값을 반올림하여 리턴 설계 변수 선언 (숫자를 찾아낼 String digit, 총합을 구할 double sum, 숫자를 뺀 문자열 pure str) for문을 사용하여 문자열 순회 2-1. if (str에 숫자가 있다면) str을 int로 바꾸고 sum에 더해줌 2-2 else if (str이 공백이 아니라면) pure_str에 해당 문자열을 더해줌 result에 총합 나누기 문자열의 길이를 넣음 math.round를 사용해서 반올림을 해준다 ### 구현 ```java public class Main { public static void main(String[] args) { System.out.print(numberSearch.. 2022. 10. 22.
[JAVA] 백준 1152번 (단어의 개수) 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 예제 입력: The Curious Case of Benjamin Button 출력: 6 ### 처음 설계 > 1. BR을 사용해 문자 입력을 받는다 2. split를 사용해 공백을 기준으로 str을 자른다 3. count에 s.. 2022. 10. 22.
[JAVA] 아이소그램(isogram) 알고리즘 문제 문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다. 원래 하려고 했던 방법 1 str = str.toLowerCase(); String[] new_str = new String[str.length()]; for (int i = 0; i < str.length(); i++) { new_str [i] = str.toLowerCase(); for (int j = i + 1; j < str.length(); j++) { if (new_str [i] == new_str[j]) { return false; } } } return true; 문제점 charAt를 사용해 변환해주는 대신 new_str이라는 새로운 배열을.. 2022. 10. 21.
728x90