N = int(input())lst = []for i in range(N): num = int(input()) if num == 0: lst.pop() else: lst.append(num)print(sum(lst)) 매우 쉬운 문제.첫 번째 줄에 입력받은 숫자의 횟수 만큼 두 번째 줄부터 입력 받은 숫자들이 리스트에 저장되도록 하였다.그 후 N번만큼 반복되는 for문에서 숫자 num을 입력받고,num이 0이면 가장 마지막에 저장된 숫자를 지워야 하므로 스택에서 pop(),num이 0이 아니면 num을 스택에 저장해준다.마지막으로 sum() 함수로 리스트의 합계를 출력해주면 끝!
전체 글
This lab contains a DOM-clobbering vulnerability. The comment functionality allows "safe" HTML. To solve this lab, construct an HTML injection that clobbers a variable and uses XSS to call the alert() function. 현재 해당 블로그의 댓글 기능은 "안전한" HTML 을 허용한다는 것을 보니, 아마 댓글창에 익스 코드를 삽입하는 문제인 것 같다. 변수를 clobber하여 XSS로 alert() 함수를 호출하는 DOM clobbering 문제이다. 저번 문제와 달리 practitioner가 아니라 expert 문제라서 훨씬 어려웠는데, 구글링 해..
This lab demonstrates a DOM-based redirection vulnerability that is triggered by web messaging. To solve this lab, construct an HTML page on the exploit server that exploits this vulnerability and calls the print() function. web messaging에 의해 발현되는 DOM 취약점을 보여주는 문제이다.해당 취약점을 활용해서 print() 함수를 호출하는 HTML 페이지를 익스플로잇 서버에 올리라고 한다. 먼저 문제의 블로그 사이트를 탐색해보자. 더보기 ..
이 문제에서도 좌측 상단에 시간 제한 2초가 눈에 띤다.앞서 배웠던 sys 모듈로 한꺼번에 N+M개의 줄을 입력 받은 후에 for 문으로 처리해야 할 것이다. 첫 번째 코드import sysinput = sys.stdin.readword = input().splitlines()N, M = map(int, word[0].split())S = word[1:N+1]mlst = word[N+1 : N+1+M]num = 0for i in range(M): temp = mlst[i] for j in range(M): if S[j] in temp : num+=1print(num)이건 시도했었던 첫 번째 코드인데, 아래 for문에서 indexerror로 실패했던 코드이다. ..
파이썬에서 다들 sys 모듈을 사용해서 입력받길래, 나도 기능들이 좀 궁금해서 기록해보고자 함 1. sys 모듈이란?- 파이썬 표준 라이브러리 중 하나로, 시스템 특정 파라미터와 함수에 접근할 수 있게 해줌- ex) 명령 줄 인수, 표준 입출력 및 에러 스트림 제어 가능 - 특히 스크립트 실행 환경 제어 및 개선에 유용 대화형 프롬프트 변경 : sys.ps1 위와 같이 sys.ps1()을 통해 현재 프롬프트를 변경할 수 있다.원래 >>> 로 되어 있었던 프롬프트가 ^&^ 로 바꿔진 것을 볼 수 있다. 명령 줄 인수 전달 : sys.argv파이썬으로 작성된 파일을 실행할 때 인수(argument)를 담아서 처리해주는 기능을 한다. 예시를 통해 알아보자.import sysprint(sys.argv) # ..
겉보기에는 굉장히 쉬운 조건들이여서 의문이었는데 시간 제한의 함정이 있는 문제였다.처음엔 막무가내로 조건별로 다 if문으로 처리해버리고, 입력 받는 것도 그냥 input() 으로 입력 받았었는데,효율적 코드 작성을 위한 시행착오를 통해 sys 모듈까지 공부해보게 되었다. 첫 번째 코드N = int(input())stack = []for _ in range(N): word = input() if 'push' in word: parts = word.split() stack.append(int(parts[1])) elif word == 'pop': if stack: print(stack.pop()) else: print(-1) elif ..