고유번호의 처음 5자리 : 사용자 입력받기6번째 자리는 : 검증수
처음에 문제를 풀려고 했을 때는변수 K로 a,b 개수 입력받기void a() 함수와 b함수를 만들어 두 함수 다 for문을 돌려 각각 a를 b로 변환, b를 ba로 변환한다.이렇게 문제해결과정을 썻었는데 DP 문제이다 보니 규칙성이 있을 것같아 버튼을 여섯번 누를 때
이 문제는 재귀 함수호출을 이용하여 구현하였다. 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 두 ㅣ그 중 한조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수를 가르킨다. 이 문제에서의 재귀함수는 Binary() 함수로 구현하였다. N을 이진수로 바
모음 바로 다음에 p를 쓰고 p를 쓴 다음에는 그 모음을 다시 작성공백으로 단어를 구분그럼일단 문장을 입력받고,띄어쓰기 단위로 단어를 구분한다.그 다음에는 단어 내에 모음이 있나 없나를 판별(if문 이용)1.만약에 모음이라면 ->모음의 갯수만큼 단어 내의 p삭제 그
여기서 더 작은 문제로 쪼개보면 중복되는 문제들이 존재한다.1,2,3으로 만들 수 있는 숫자의 방법을 n{ ] 으로 두면5을 예로 들면n5 →n4 + n3 +n2 이 된다.n5=n4+n3 + n2 = 13 이 성립한다. public class Main { pub
그럼 입력으로 주어진 시간에서 -45하면 되지(분) if 문으로 케이스들 나눠서 구현하였다.만약에 시가 24이내이면 정상적으로 출력1) 만약에 분이 59이내이면 정상적으로 출력 가) -45해주기 나). 만약에 분이 0이하이면 시간 -1감소, 분은 60+분으로 설정만약
처음에 문제 봤을 때는 알고리즘 시간때 배웠던 LIS 문제랑 비슷해보여서 LIS 문제같이 푸는건가 싶었는데 그게 아니라 수학 공식을 활용해서 풀었다.원소는 연속되어야 하고, 길이는 L 이상을 만족해야 한다.그러면 N이라는 합을 만족시키고 길이가 적어도 L 이상인 수열의
문제 풀이과정 이 문제는 좀 많이 삽질을 했던 문제이다. 주어진 원소들을 배열에 넣고 퀵 정렬을 해야 하는건가 싶었는데, 작년 알고리즘 수업 자료들을 찾아보다가 이 문제와 유사한 문제가 있었다. Storing Files on Tape 이 문제와 유사한 방식으로 풀 수
문제 코드
Comparartor 클래스 이용하여 주어진 문자열을 조건에 맞게 정렬문자열의 길이가 같다면\-> 오름차순으로 정렬 ( -> o1의 값이 더 크면 양수를 리턴하여 뒤로가게되므로 오름차순으로 정렬된다.)\-> 만약 o1의 문자열의 길이가 o2보다 크다면 양수 반환 (1)
트라이\- 문자열을 빠르게 검색할 수 있는 자료 구조\- 트라이의 Root노드는 항상 빈 문자열 상태단어 사전을 트라이에 insert 후, 트라이를 사용하여 검색트라이 구축하기트라이 노드 설계void insert 함수단어 사전의 입력할 단어를 트라이에 삽입root 노드
선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다.예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다.위 순서에 없는 다른
두 개의 정수 배열 nums1과 nums2가 주어지며, 이 배열들은 비내림차순으로 정렬되어 있습니다. 또한 두 정수 m 과 n 이 주어지는데, 이들은 각각 nums1과 nums2의 원소 개수를 나타냅니다.nums1과 nums2 배열을 합쳐 하나의 오름차순으로 정렬된 배
정수 배열 nums와 정수 val이 주어졌을 때, 배열 nums에서 val과 같은 모든 요소를 제거하세요.요소들의 순서는 변경될 수 있습니다. val과 같지 않은 nums에서 요소의 개수를 반환하세요.주어진 nums 배열을 List로 변경합니다.for문을 통해 nums
🔖 문제비내림차순으로 정렬된 정수 배열에서 중복을 일부 제거하여 각 고유한 요소가 최대 두 번 나타나도록 하세요. 요소의 상대적인 순서를 유지해야 합니다.중복을 제거한 후 k개의 요소가 남으면, nums의 처음 k개 요소에 최종 결과를 저장해야 합니다.k값을 반환하세
🔖 문제크기가 n인 배열 nums가 주어졌을 때, 과반수 요소를 반환하세요.과반수 요소란 ⌊n / 2⌋보다 많이 등장하는 요소를 의미합니다.🔖접근 방식문제를 보자마자 HashMap을 이용하여 요소와 요소의 등장 빈도수를 저장해야겠다는 생각이 들었습니다.또한 이 문제
🔖 문제nums와 array의 요소들을 오른쪽으로 옮기는 횟수 k가 주어진다. 오른쪽으로 k번 옮겼을 때의 nums를 반환하세요.🔖접근 방식문제를 보자마자 Deque를 이용하면 쉽게 풀릴 것 같다라는 생각이 들었습니다.새로운 Deque 생성rotation = k %
🔖 문제prices 배열에는 각 인덱스마다, 그날의 지정된 주식가격이 저장되어있습니다.특정 날을 선택하여 주식을 매입, 그 날 이후 주식을 매도하여 최대 이익을 반환합니다.이익이 발생하지 않는다면, 0을 반환해야합니다.🔖접근 방식딱 한번 구매하고, 딱 한번 판매하는
🔖 문제prices 배열에는 각 인덱스마다, 그날의 지정된 주식가격이 저장되어있습니다.매입매도를 적절히 진행하여, 최대한 많은 이익을 return 해야 합니다.🔖접근 방식이 문제의 경우 조금 단순하게 접근할려고 했습니다.1\. 배열을 순회하며, 현재 날짜(현재 인덱
📑 문제🔗 https://leetcode.com/problems/valid-palindrome/?envType=study-plan-v2&envId=top-interview-150주어진 문자열 s가 palindrome이면 true반환, 아니라면 false 반
📑 문제 오름차순으로 정렬된 배열에서 두 수의 합이 특정 타겟 숫자와 같도록 하는 두 수의 인덱스를 찾으세요. > 📑 접근방법 이 문제를 처음 보았을 때, '두 수의 합'이라는 키워드가 눈에 띄었습니다. 그래서 바로 '투 포인터(Two Pointer)' 알고리
📑문제https://leetcode.com/problems/minimum-size-subarray-sum/?envType=study-plan-v2&envId=top-interview-150SubArray의 sum이 주어진 target보다 크거나 같은 SubA
📑 문제https://leetcode.com/problems/longest-substring-without-repeating-characters/?envType=study-plan-v2&envId=top-interview-150반복되는 문자없이 가장 긴 su
📑 문제주어진 정수(target)가 이 행렬에 존재하는지 확인해야 합니다. 만약 존재하면 true를, 그렇지 않으면 false를 반환해야 합니다.m x n 크기의 정수 행렬(matrix)가 주어지며, 이 행렬은 다음 두 가지 조건이 있습니다. 1\. 각 행은 비감소
문제 > 📑 접근 방식 left와 right 포인터를 초기화하여 2차원 배열을 1차원 배열처럼 처리하는데, 이때 left와 right는 배열의 시작과 끝을 가리킵니다. left가 right보다 작거나 같은 동안 반복문을 실행합니다. 중간 인덱스 mid를 찾습니다.
📑 문제 int 배열의 nums와 target이 주어졌습니다. 배열의 두개의 원소를 더해서 target과 같아지는 배열의 인덱스를 구하세요.📑 문제 접근 방식HashTable을 이용하여 문제를 해결했습니다. 처음에는 배열을 돌며, target과 같아지는 두개의 배열
📑 문제magazine에 포함된 문자들로 ransomNote를 구성할 수 있다면 true를 반환하고, 그렇지 않다면 false를 반환하세요.📑 문제 접근방식처음에는 magazine에서 만들 수 있는 모든 부분 문자열을 조합해서 만든 후, 만든 문자열을 HashMap
📑 문제numsi는 numsj와 같다.인덱스 i와 j 사이의 절대값 거리(abs(i - j))가 k 이하다.만약 위의 두 조건을 만족하는 두 개의 고유한 인덱스가 배열 내에 있다면 true를 반환하고, 그렇지 않다면 false를 반환하세요📑 문제 접근 방식이 문제도
📑 문제Reverse Polish Notation (RPN, 후위 표기법)으로 표현된 산술 식이 문자열 배열로 주어집니다.문제의 목표는 이 산술 식을 계산하고 그 결과값을 정수 형태로 반환하는 것입니다.연산자는 항상 두 개의 숫자에 대해 작용합니다.나눗셈은 반드시 피
📑 문제이 문제는 특정한 조건을 만족하는 스택을 설계하고 구현하는 것입니다.구체적으로, 다음과 같은 기능들을 상수 시간 내에 수행할 수 있는 스택을 구현해야 합니다:MinStack() : 스택 객체를 초기화합니다.void push(int val) : 원소 val를 스
문제 두 문자열과 t가 주어지면 s의 아나그램이면 true를 반환하고 그렇지 않으면 false를 반환합니다.Anagram은 일반적으로 모든 원래 문자를 정확히 한 번 사용하여 다른 단어나 구의 문자를 재정렬하여 형성된 단어나 구입니다.\`문제 접근 방식이 문제는 슬라이
문제'피크'란 주변 요소보다 큰 값을 가진 요소를 의미합니다. 배열 내에 여러 개의 피크가 있을 수 있으며, 이 중 하나를 찾으세요.문제 접근 방식배열을 탐색하며, 한 요소에 대해 왼쪽 요소와 오른쪽 요소를 비교해서 큰 값을 찾아야 하는 문제이기 때문에, 선형 탐색보다
문제정렬된 배열이 어느 피벗을 기준으로 회전되어 있다. 예를 들어, 0,1,2,4,5,6,7이 4,5,6,7,0,1,2로 회전되었다고 가정해봅시다. 이런 배열에서 최소값을 찾으시오접근방식배열에서 최솟값을 찾으면 되기 때문에, 선형 탐색 대신 시간복잡도가 작은 이진 탐색
📑 문제 두 개의 정수 배열과 정수 k가 주어졌을 때, 두 배열에서 각각 하나씩 선택하여 만들 수 있는 쌍(pair) 중 합이 가장 작은 k개의 쌍을 찾는 문제입니다.두 개의 입력 리스트 nums1, nums2와 정수 k가 주어집니다.각 리스트에서 하나의 원소를 선
📑 문제정수 배열과 정수 k가 주어지면, 해당 배열에서 k번째로 큰 요소를 찾아야 합니다.📑 문제 접근 방법두 가지 방법을 사용해서 문제를 해결했습니다. 첫 번째 방법 - 정렬 사용:먼저, 배열 nums를 오름차순으로 정렬합니다. 이렇게 하면 배열의 가장 큰 숫자가
📑 문제https://leetcode.com/problems/clone-graph/📑 문제 접근 방법이문제는 graph문제이기 때문에, DFS 알고리즘을 이용하여 해결했습니다. 복제한 노드를 저장하기 위해 HashMap을 생성현재 노드를 복제 , 이웃 노드