본문 바로가기
반응형

전체 글123

File Download 파일 다운로드 가능한 페이지에서 다운로드 가능한 파일에 대한 검증이 부족할 때, 발생하는 파일 다운로드 취약점 다운로드하는 파일 이름을 변조하여 다른 경로의 파일 다운로드를 통해 공격을 하는 기법이다. 여기서 절대경로로 접근할 경우에 파일 다운로드가 안되는 경우가 가끔 있다. '잉?! /etc/passwd 는 절대경로 맞는데 왜 안나오지?'라는 의문에 빠지지말고, 이렇게 ./upload//etc/passwd 인자가 들어갈 수 있으니 상대경로로 시도해보자 2021. 7. 28.
프로그래머스 - 소수찾기 숫자 n을 입력받고 1부터 n까지의 소수의 개수를 찾는 문제이다. (n의 범위 2이상 1000000이하) 완전 탐색으로 모든 숫자를 소수인지 확인하는 쉬운 방법이 있지만, 효율성에서 안된다. 검색을 통해 알아보니 에라토스테네스의 체가 가장 간단한 소수찾는 방법이라고 한다. 1부터 n까지 소수 본인을 제외한 소수의 배수를 소거해주는 방법인데, 가장 빠른 이유는 제곱한 수가 n을 넘어가는 수까지의 소수만을 확인하면 되기 때문이다. 예를 들면 n이 120이라고 가정했을 때, 11의 제곱은 121이므로 11보다 작은 소수의 배수만 지우면 된다. 11보다 작은 소수는 2,3,5,7이므로 이를 제외한 소수들의 배수를 소거해주면 된다. 처음에 생각한것은 숫자가 소수인지 확인하고 소수이면 answer+=1를 해준 뒤,.. 2021. 7. 11.
프로그래머스 - 최솟값 만들기 최솟값 만드는 알고리즘을 잘 생각해보면, 가장 큰 수랑 가장 작은 수랑 곱해서 더할 수 있도록 만드는 것이 최선이라는 생각이 들었다. def solution(A,B): answer = 0 A.sort() B.sort() B = B[::-1] for i in range(len(A)): answer+=A[i]*B[i] return answer 2021. 7. 7.
프로그래머스 - 주식가격 double pointer?에 대한 개념을 익히기에 좋은 문제이다. 레벨 2, 스택/큐 카테고리에 있는 문제이다. 1234567891011121314151617def solution(prices): answer = [] for start in range(len(prices)): day = 0 for end in range(start+1,len(prices)): if prices[start] > prices[end]: day+=1 break else: day+=1 answer.append(day) return answercs 2021. 7. 7.
반응형