본문 바로가기

반응형

전체 글

(237)
GFG Count the Substrings 자바 문제 풀이 문제 Problem_Link 문제해결방법 조건: 대문자와 소문자의 개수가 같은 substring 특정 substring의 시작점과 끝점의 대소문자 차이가 같다면, 그 substring은 조건에 맞는 substring 이라 볼수 있다. 예제: “AbaBBa” 위 예제의 substring의 총 개수는 21개 이며, 조건에 맞는 substring은 7개이다. 대소문자 차이를 구하기 위해 대문자이면 +1을, 소문자이면 -1을 사용한다. 시작점은 대소문자 차이가 없으므로 0이다. index 없음 0 1 2 3 4 5 element 시작점 A b a B B a 대소문자 차이 0 1 0 -1 0 1 0 같은 대소문자 차이를 가지고 있는 사이의 substring은 조건에 맞는 substring이다. substring ..
1 ~ n까지 합(등차수열의 합)을 구하는 원리 정의 등차수열의 합은 연속하는 항들 간의 차이가 일정한 수열의 합을 말합니다. 등차수열의 합을 구하는 공식을 사용하여 1부터 n까지의 합을 계산할 수 있습니다. 사용 방법 등차수열의 합을 구하기 위해서는 다음과 같은 공식을 사용합니다: (첫 번째 항 + 마지막 항) × 항의 개수 / 2 a: 시작값 b: 종료값 c: 공차 공차: 등차수열에서 연속하는 항들 간의 차이 수학 예제 1부터 10까지의 합을 구한다고 한다면, a: 시작값= 1 b: 종료값= 10 c: 공차= +1 이므로 대입을 한다면 아래와 같습니다. 장점 등차수열의 합 공식은 간단하고 직관적입니다. 큰 수의 합을 빠르게 계산할 수 있습니다. 일반적인 형태의 등차수열에 대해 적용 가능합니다. 단점 이 공식은 등차수열에만 적용 가능하며, 다른 유형..
LeetCode 236. Lowest Common Ancestor of a Binary Tree 자바 문제 풀이 문제 Lowest Common Ancestor of a Binary Tree - LeetCode 문제 해결 방법 최소공통 조상LCA를 알고 있느냐고 묻고, 이를 구현할수 있느냐고 묻는 문제입니다. LCA의 전처리 과정은 이 문제에서는 사용할수 없습니다. Tree Node를 수정할수 없기떄문입니다. 그러므로, 보통 LCA알고리즘은 목표로하는 두 노드에서 부모로 올라가며 비교하는 방식이지만, 이 문제의 경우 root에서 하나씩 아래로 내려가며, p나 q가 현재 노드와 같은가 비교하여 구합니다. 참고 최소 공통 조상, LCA(Lowest Common Ancestor)이란 Github Link https://github.com/eunhanlee/LeetCode_236_LowestCommonAncestorofaB..
최소 공통 조상, LCA(Lowest Common Ancestor)이란 정의 최소 공통 조상, LCA(Lowest Common Ancestor). LCA는 트리 구조에서 두 노드의 가장 가까운 공통 조상을 찾는 알고리즘 또는 개념입니다. 예제 위와 같은 이진트리가 있다고 할때, 4와 6의 LCA는 1입니다. LCA(4,6)=1 목적 LCA의 목적은 트리 구조에서 두 노드의 가장 가까운 공통 조상을 효율적으로 찾는 것입니다. 사용을 고려해야 하는 경우 LCA 알고리즘을 고려해야 하는 경우: 트리 구조에서 두 노드 간의 거리를 계산해야 할 때 특정 노드를 루트로 하는 서브트리에 속한 노드들을 찾아야 할 때 컴퓨터 네트워크에서 최단 경로를 계산해야 할 때 게임 개발에서 충돌 감지 등의 문제를 해결해야 할 때 사용하면 안되는 경우 LCA 알고리즘은 트리 구조가 아닌 다른 자료 구조..
LeetCode 2235. Add Two Integers 자바 문제 풀이 문제 Add Two Integers - LeetCode 문제 해결 방법 단순하게 연산을 해서 리턴하는 능력을 시험하는 문제입니다. 가로()는 자바 우선순위에 따라서 사용할 필요가 없습니다. 참고 복잡한 표현식의 연산자 그룹화: 자바 연산자 우선순위 Github Link https://github.com/eunhanlee/LeetCode_2235_AddTwoIntegers_Solution.git 시간복잡도: O(1), 공간복잡도: O(1) class Solution { /** * Returns the sum of two integers. * * @param num1 The first integer. * @param num2 The second integer. * @return The sum of num1 ..
LeetCode 1512. Number of Good Pairs 자바 문제 풀이 문제 Number of Good Pairs - LeetCode 문제 해결 방법 반복문안에 또다른 반복문(for)과 다중조건(if, &&연산자)을 잘 잡을수 있는지 묻는 문제 입니다. Github Link https://github.com/eunhanlee/LeetCode_1512_NumberofGoodPairs_Solution.git 시간복잡도: O(n^2), 공간복잡도: O(k) class Solution { /** * 주어진 배열에서 동일한 쌍의 개수를 계산합니다. * * @param nums 정수 배열입니다. * @return 배열에서 동일한 쌍의 개수입니다. */ public int numIdenticalPairs(int[] nums) { int counter = 0; // 동일한 쌍의 개수를 세..
웹 해킹 예제: 인증과 인가 취약점_CTF: 로그인 우회하기 목표 로그인 페이지를 우회하고, 그 시스템에서 미사일 발사 버튼을 클릭하세요! :D 공격 공격순서 홈페이지 접속시 일단 burp suite으로 내부 코드 확인 일단 기본 페이지인 /auth1/(/auth1/index)에 연결된뒤, 로그인 페이지인 /auth1/login.php로 리디렉션 되는것을 확인 할수 있다. 다른 웹싸이트로 이동하는 경우 status code는 300번때 이여야 하는데. 기본 페이지인 /auth1/의 status code는 200번으로 성공이면서 이동한게 이상하므로, 응답된 페이지를 살펴보자. response 된 웹싸이트 코드를 자세히 살펴보기 서버에서 리디렉션를 하는게 아닌 웹싸이트의 자바 스트립트에서 이라는 코드로 리디렉션 하는것을 확인. 이는 서버에서 처리하는 방식이 아니라 내..
웹 해킹 예제: 인증과 인가 취약점_CTF: 미사일 날리기 목표 미사일 시스템에 접근했다! 우리가 탈취한 계정은 mario / mariosuper 이다! 흐움... 근데, 관리자 계정이 필요하군 .. ㅠㅜ 공격 공격순서 burp suite으로 내부 코드 확인 로그인 후 index 페이지에서 멈추는것을 확인 좀더 자세히 살펴본다 인덱스 페이지 자세히 확인 HTTP/1.1 200 OK Date: Tue, 20 Jun 2023 21:03:31 GMT Server: Apache/2.4.18 (Ubuntu) Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Vary: Accept-Encoding Content-Length: 1395..

반응형