본문 바로가기

반응형

전체 글

(237)
LeetCode 2011. Final Value of Variable After Performing Operations 자바 문제 풀이 문제 Final Value of Variable After Performing Operations - LeetCode 문제 해결 방법 전위연산자와 후위연산자를 주는것은 함정입니다. 이 문제는 스트링을 비교하는것과 숫자를 비교하는데 차이점을 알고 있느냐고 묻는 문제입니다. 하지만 이와 동시에 여러가지 최적화할 여지를 남겨두었기에 유저가 최적화를 얼마나 할수 있는지, 논리적으로 얼마나 할수있는지 시험하는 문제이기도 합니다. 기본적으로 자바에서 스트링을 비교할떄는 반드시 equal을 써야합니다. 문제에서는 피라미터가 반드시 "++X", "X++", "--X", or "X--" 중 하나라고 말했기 때문에 굳이 equalsIgnoreCase같은 메서드를 사용할 필요가 없다. 여기서 조금더 최적화를 하자면, 전부 ..
자바의 물음표 연산자(?:)란 정의 물음표 연산자(? :)는 조건 연산자로서, 조건식의 평가 결과에 따라 두 개의 표현식 중 하나를 선택하는 것입니다. if문과 같은 결과를 낼수 있습니다. 구조 if(Condition){ result = expression1; }else{ result = expression2; } ---- result = Condition ? expression1: expression2; if문과 똑같습니다. 사용을 고려해야 하는 경우 물음표 연산자를 사용할 때는 다음 사항을 고려해야 합니다: 장점 코드의 간결성: 조건에 따라 값이 선택되는 로직을 한 줄로 표현할 수 있어 코드의 가독성과 간결성을 높입니다. 표현식의 재사용성: 선택되는 표현식은 변수에 할당되거나 다른 표현식의 일부로 사용될 수 있으므로 재사용성이 높..
자바의 Primitive 데이터 타입과 Reference 데이터 타입 기본형 타입(Primitive type) 총 8가지의 기본형 타입(Primitive type)을 미리 정의하여 제공한다. 기본값이 있기 때문에 Null이 존재하지 않는다. 실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다. String은 object이다. primitive type이 아니다. 테이터 타입 이름 할당 메모리 bit 기본값 데이터 범위 데이터 숫자 범위 boolean 1 byte 1 bit false true, false true,false byte 1 byte 8 bit 0 -128 ~ 127 $-2^{7}$~ $(2^{7}-1)$ short 2 byte 16 bit 0 -32,768 ~ 32,767 $-2^{15}$~ $(2^{15}-1)$ int 4 byte 32 bit ..
CSRF (Client Side Request Forgery) 란 정의 Client Side Request Forgery 피해자가 자신의 의도와는 다르게, 자신도 모르게 서버로 임의의 요청을 하게 만드는 공격 Server Side: 서버에서 실행되는 코드 Client Side: 클라이언트(웹 브라우져) 측에서 실행되는 코드 취약점 발생 지점 리스트 변경을 요청하는 모든 페이지 관리자 계정 등록 비밀번호, 이메일주소, 아이디 변경 등 이메일 주소 변경 웹 애플리케이션에서 세션을 사용하여 인증된 사용자를 식별하는 경우 웹 애플리케이션이 출처 확인 메커니즘을 제대로 구현하지 않은 경우 취약점 검증 방법 피라미터를 가진 get방식의 요청이 가능한지 확인, 이를 이용해서 비밀번호 변경이 가능한지 확인 post방식을 get방식으로 변경해도 되는지 확인. 공격 순서 웹싸이트에서 비..
사이버 보안: XSS이란 정의 사이트 간 스크립팅 (Cross-site scripting) 웹 상에서 가장 기초적인 취약점 공격 방법중 하나 권한이 없는 사용자가 악의적인 용도로 웹 사이트에 스크립트를 삽입하는 공격 기법입니다. 대표적인 클라이언트 측 코드를 삽입하는 공격이기도 합니다. 취약점 발생 지점 리스트 Stored XSS: 게시글 작성공간, 제목, 내용, 작성자 등 Reflected XSS: 피라미터를 입력받는 get방식 요청(post방식을 get방식으로 바꿔도 아무 문제없는곳) DOM XSS: 프레그먼트를 사용해서 데이터를 받는 모든 페이지 취약점 검증 방법 Stored XSS - 게시글에 자바 스크립트 작성: 의도치 않은 희생자를 만들수 있으므로, alert나 시간 출력등으로 대체합니다. Form URL: 게시글작성..
LeetCode 169. Majority Element 문제 풀이 문제 Majority Element - LeetCode 문제 해결 방법 -O(n),O(1)으로 풀어야합니다 -언제나 majority element가 존재합니다. -majority element의 정의는 list length/2 < element입니다 -아래 방법은 공간복잡도가 O(n)이므로 HashMap은 사용할수 없습니다. 해쉬맵으로 모든 숫자개수를 카운트하며 어레이를 iterate합니다. 카운트된 숫자가 가장 높은수를 찾아서 리턴합니다. -아래방법은 시간 복잡도가 O(n log n)이므로 사용할수 없습니다. 어레이를 정렬합니다.(Arrays.sort(nums);) 어레이에서 nums[nums.length/2]를 리턴합니다. 과반수 이상인 숫자가 존재하므로, 중간값은 반드시 과반수에 해당하는 값입니다...
웹해킹: SQL injection 정의 SQL injection이란 악의적인 SQL 질의문을 삽입하여 데이터베이스 시스템을 공격하는 기법입니다. 데이터 추출, 변조, 인증 우회 등등이 가능합니다. 취약점 발생 지점 리스트 사용자 입력이 되어 인증하는 모든 곳 로그인 아이디, 비밀번호 게시글 검색 취약점 검증 방법 php로그인창의 경우: select id, pwd from table where id =’input’ 라고 한다고 추측하면, 아래와 같이 아이디를 사용하여 로그인이 되는지 확인 아이디'+and+(1=1)+and+'1%'='1 php검색창의 경우: 3+4를 했을때, 7이 검색이 된다면 필터링이 없다는것을 추측 가능. 3+4 php검색창의 경우: 검색은 보통 ‘%%’이므로, 바로 검색을 하는지 아래 코드로 검색이 되는지 확인 검색어..
136. Single Number 문제의 자바 해결 방법: 효율적인 알고리즘 문제 Problem_Link 문제해결방법 a linear runtime complexity =O(n) use only constant extra space=O(1) 처음 생각했던 방법은 해쉬맵을 만들어서 두번 나오지 않는것을 생각했으나, 공간복잡도를 O(1)이여야 하므로 사용할수 없음. O(n) 이나 O(2n)이나 같은 O(n)이므로, 정렬을 하고 비교하는 방식으로 가능함 정렬을 한다 다음에 나오는 수가 같지 않다면 리턴 시간복잡도: O(n), 공간복잡도: O(1) https://github.com/eunhanlee/leetcode_136_Single_Number import java.util.*; class Solution { /** * 배열에서 single number를 찾는 메소드입니다. * * @..

반응형