본문 바로가기

반응형

old

(225)
웹 해킹 예제: 인증과 인가 취약점_CTF: 달콤한 마이페이지 훔쳐보기 목표 admin 계정의 마이페이지를 확인하세요! 공격 공격순서 일단 마이페이지를 확인하고 내부 코드를 확인해본다 sfUser/sfUser1234로 로그인을 하고 마이페이지에 접근한후, 내부 코드를 살펴본다 요청코드 GET /auth8/mypage.php?user=sfUser HTTP/1.1 Host: ctf.segfaulthub.com:3481 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.134 Safari/537.36 Accept: text/html,application/xhtml+xml,applic..
LeetCode 1431. Kids With the Greatest Number of Candies 자바 문제 풀이 문제 Kids With the Greatest Number of Candies - LeetCode 문제 해결 방법 알고리즘 일단 주어진 어레이에서 max값을 찾는다 각 어레이를 순회하며, 추가 사탕을 더한값이 max값보다 크면 true를 작으면 false를 추가한다. stream을 사용하는것은 추천하지 않습니다. 복잡한 요소가 있는것이 아니기때문에 단순한 advanced for문 정도면 충분합니다. if(candy + extraCandies < max)에서 candy + extraCandies를 따로 가로안에 넣어줄 필요도 없습니다. 자바 우선순위에 따라 필요하지 않습니다. if문은 물음표 연산자로 대체 가능합니다. if(candy+extraCandies= max)); } return result; }
LeetCode 217. Contains Duplicate 자바 문제 풀이 문제 Problem_Link 시간복잡도: O(n), 공간복잡도: O(n) class Solution { public boolean containsDuplicate(int[] nums) { // 배열의 요소를 저장하기 위해 HashMap을 생성합니다. HashMap map = new HashMap(); // 배열의 모든 요소를 순회합니다. for (int temp : nums) { // HashMap에 현재 요소가 이미 존재하는지 확인합니다. if (map.containsKey(temp)) { // 만약 존재한다면, 배열에 중복된 요소가 있다는 뜻으로 true를 반환합니다. return true; } else { // 존재하지 않는다면, HashMap에 현재 요소를 추가합니다. // 1은 중복된 요소가 있..
LeetCode 42. Trapping Rain Water 자바 문제 풀이 문제 Trapping Rain Water - LeetCode 문제 해결 방법 물을 받기위해서 최소한 1,0,1의 높이가 필요하므로, 최소한 3개이상의 엘레맨트가 필요합니다. 알고리즘 체크하길 원하는 포지션을 기준으로 왼쪽과 오른쪽에서 가장 높은 블럭 수를 구합니다. 두 높은 수에서 작은수 만큼 물을 채울수 있습니다. 이제 포지션의 블럭수를 확인해서 채울수 있는 물의 높이를 뺍니다. 모든 포지션을 반복합니다. 위 알고리즘을 사용하기 위해서 미리 루프문을 돌려서 오른쪽의 가장 높은 블럭수와 왼쪽의 가장 높은 블럭수를 미리 구해야 합니다. 아래와 같이 필요한 수를 확인할수 있습니다. Github Link https://github.com/eunhanlee/LeetCode_42_TrappingRainWater_..
LeetCode 771. Jewels and Stones 자바 문제 풀이 문제 Jewels and Stones - LeetCode 문제 해결 방법 이 문제는 입력된 스트링에 입력된 또다른 스트링의 각 문자가 존재하는지 확인 하는 문제입니다. 각각 한번씩은 확인할수 밖에 없으므로, O(n^2)입니다. 기초적인 문자열을 다루는 법을 아느냐고 묻는 문제입니다. 아래와 같이 풀기 위해서, toCharArray() 메서드에 대해서 알아야 하며, char타입 비교를 위해서 자바의 데이터 타입에 대하여 알아야 합니다. 자바의 Primitive 데이터 타입과 Reference 데이터 타입 Github Link https://github.com/eunhanlee/LeetCode_771_JewelsandStones_Solution.git 시간복잡도: O(n^2), 공간복잡도: O(1) clas..
LeetCode 35. Search Insert Position 자바 문제 풀이 문제 Search Insert Position - LeetCode 문제 해결 방법 주어진 문제의 잇풋은 정렬된 어레이입니다. O(log n)안에 풀어야 된다는 조건이 있습니다. 이미 정렬된 리스트에서 log n으로 찾는 방법은 이진검색(binary search)뿐입니다. 이 문제는 이진검색에 대해서 잘 알고, 이를 구현할수 있느냐고 묻는 문제입니다. 또한 이진검색을 구현시, 재귀함수를 사용할지 반복문을 사용할지 선택해야 합니다. 이 문제는 이전단계의 결과가 필요하지 않고, 하위문제로 분리할 필요도 없으므로, 반복문으로 구현하는것이 효과적입니다. 값을 찾지 못했을떄, 가장 가까운 값을 리턴해야 하므로, low값을 리턴합니다. mid값은 변경전이고, mid값에서 2를 나누고 남은 값은 버림을 하므로, hig..
LeetCode 1603. Design Parking System 자바 문제 풀이 문제 Design Parking System - LeetCode 문제 해결 방법 자바 오브젝트 생성을 할수 있느냐고 묻는 문제 입니다. 1번 답은 기본적인 오브젝트 생성이며, 협업하고, 나중에 업데이트 하기 좋은 코드 입니다. 2번 답은 이 문제에 있어서 매우 효율적이지만, 나중에 업데이트하기 어려운 코드 입니다. Github Link https://github.com/eunhanlee/LeetCode_1603_DesignParkingSystem_Solution.git 1번 답 class ParkingSystem { private int bigSlots; // 대형 차량용 사용 가능한 슬롯 수 private int mediumSlots; // 중형 차량용 사용 가능한 슬롯 수 private int sma..
단축 평가 계산(Short Circuit Evaluation)이란 Short Circuit Evaluation이란? Short Circuit Evaluation이란 AND 혹은 OR의 연산에 있어서 결과가 확실하게 예측이 되었을 때 뒤에 나머지 연산을 실행하지 않고 답을 내버리는 경우를 의미합니다. 적용되는 프로그래밍 언어 일부만 적용된다고 하는데, 현재 2023년 기준으로 C,C++,JAVA,Python는 적용되는것을 확인. AND 연산의 경우 AND연산의 경우에 false가 우선 나와버리면 AND 뒤에 나오는 연산은 생략이됩니다. OR 연산의 경우 OR연산의 경우에 true가 우선 나와버리면 OR 뒤에 나오는 연산은 생략이됩니다

반응형