문제 https://leetcode.com/problems/reverse-vowels-of-a-string/?envType=study-plan-v2&envId=leetcode-75 코드 class Solution { private Boolean isVowel(char c){ return c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || c=='A' || c=='E' || c=='I' || c=='O' || c=='U'; } public String reverseVowels(String s) { // 스택 형식으로 모음을 담으면 뒤집어서 반환가능 Stack vowels = new Stack(); // 반환 문자열 생성시 필요한 StringBuilder객체 String..
코테/자료구조
문제 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다. 모든 달은 28일까지 있다고 가정합니다. 다음은 오늘 날짜가 2022.05.19일 때의 ..
문제 단일 연결 리스트 의 경우 head, 홀수 인덱스를 가진 모든 노드를 그룹화한 다음 짝수 인덱스를 가진 노드를 그룹화하고 재정렬된 리스트를 반환합니다 . 첫 번째 노드는 홀수로 간주되고 두 번째 노드는 짝수로 간주됩니다. 짝수 그룹과 홀수 그룹 내부의 상대적 순서는 입력과 동일하게 유지되어야 합니다. O(1) 추가 공간 복잡도와 O(n)시간 복잡도 문제를 해결해야 합니다 . 예시 1: 입력: 헤드 = [1,2,3,4,5] 출력: [1,3,5,2,4] 예시 2: 입력: 헤드 = [2,1,3,5,6,4,7] 출력: [2,3,6,7,1,5,4] 제약: 연결된 목록의 노드 수는 범위 내에 있습니다 .[0, 104] -106
문제 , , , 및 s문자만 포함된 문자열이 주어 지면 입력 문자열이 유효한지 확인합니다.'('')''{''}''['']' 다음과 같은 경우 입력 문자열이 유효합니다. 열린 괄호는 동일한 유형의 괄호로 닫혀야 합니다. 열린 괄호는 올바른 순서로 닫혀야 합니다. 모든 닫는 괄호에는 동일한 유형의 해당 열린 괄호가 있습니다. 예시 1: 입력: s = "()" 출력: true 예시 2: 입력: s = "()[]{}" 출력: true 예시 3: 입력: s = "(]" 출력: false 제약: 1
문제 0부터 인덱스가 지정된 정수 n x n행렬이 주어 지면 행 과 열이 동일하도록 쌍의 수를 반환합니다 .grid(ri, cj)ricj 행과 열 쌍은 동일한 순서로 동일한 요소를 포함하는 경우(즉, 동일한 배열) 동일한 것으로 간주됩니다. 예시 1: 입력: 그리드 = [[3,2,1],[1,7,6],[2,7,7]] 출력: 1 설명: 1개의 동일한 행과 열 쌍이 있습니다: - (행 2, 열 1 ): [2,7,7] 예 2: 입력: 그리드 = [[3,1,2,2],[1,4,4,5],[2,4,2,2],[2,4,2,2]] 출력: 3 설명: 3개의 동일한 행과 열 쌍이 있습니다. - (행 0, 열 0): [3,1,2,2] - (행 2, 열 2): [2,4,2,2] - (행 3, 열 2): [2,4,2,2] 제약: n..
문제 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 빈 큐에 데이터를 삭제하라는 연산이 주어질 경우, 해당 연산은 무시합니다. 입출력 예 operations return ["I 16",..
문제 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에서 종료까지 : 11ms)..
문제 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. * 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 scovill..