CHAPTER 02 파이썬 자료구조 연습문제
·
Data Structure
보호되어 있는 글입니다.
CHAPTER 02 파이썬 자료구조
·
Data Structure
2.1 파이썬 언어의 특징 1. 파이썬은 인터프리터(interpreter) 방식의 언어이다. - 컴파일 과정 없이 문장 단위로 빠르게 실행과 테스트가 가능하다. 2. 파이썬은 객체 지향(object-oriented) 언어이다. - 클래스를 통하여 객체의 속성과 메소드를 정의하여 인간의 사고와 유사하게 고급 수준의 프로그램을 작성할 수 있다. 3. 파이썬은 동적 타이핑(dynamic typing) 언어이다. - C언어와 달리, 변수의 자료형을 선언할 필요 없이 변수에 값이 할당되는 순간 자료형이 결정된다. 4. 리스트, 집합, 딕셔너리 등 군집 자료형 기능이 우수하다. - 리스트, 집합, 딕셔너리 등 시퀀스 자료형과 군집 자료형 지원 기능이 우수하다. 5. 파이썬 변수는 값(리터럴)에 대한 참조이다. - ..
생활코딩 WEB1- HTML & Internet
·
Hacking/Web Hacking
WEB1 - 1. 수업 소개 공부를 대하는 태도 이야기 ​ WEB1 - 2. 프로젝트의 동기 본인이 생활 코딩 프로젝트를 시작하게 된 동기 원래 강의 대상은 개발에 대한 지식이 없는 직장 동료들을 대상으로 함 ​ WEB1 - 3. 기획 기획 : 만들기 전에 무엇을 만들지 정리하는 것 코딩 사이트 기획 목차 1. HTML 2. CSS 3. Javascript ​ WEB1 - 4.코딩과 HTML 컴퓨터-인간 상호 간의 약속 : 코드, 소스, 언어 컴퓨터의 결과물 : 애플리케이션, 앱, 프로그램, 웹페이지, 웹사이드 HTML 장점 1. 쉬움 2. 중요함 (사용 ↑) 저작권 X → 독점 X → 수명 ↑ ​ WEB1 - 5. HTML코딩과 실습환경 준비 강의에서는 AT..
백준 1292 쉽게 푸는 문제 (실버 5)
·
BOJ/Python
문제 동호는 내년에 초등학교를 입학한다. 그래서 동호 어머니는 수학 선행 학습을 위해 쉽게 푸는 문제를 동호에게 주었다. 이 문제는 다음과 같다. 1을 한 번, 2를 두 번, 3을 세 번, 이런 식으로 1 2 2 3 3 3 4 4 4 4 5 .. 이러한 수열을 만들고 어느 일정한 구간을 주면 그 구간의 합을 구하는 것이다. 하지만 동호는 현재 더 어려운 문제를 푸느라 바쁘기에 우리가 동호를 도와주자. 입력 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. 출력 첫 줄에 구간에 속하는 숫자의 합을 출력한다. 내 제출 a,b = map(int,input().split()) arr = [0] f..
백준 1059 좋은 구간 (실버 5)
·
BOJ/Python
문제 정수 집합 S가 주어졌을때, 다음 조건을 만족하는 구간 [A, B]를 좋은 구간이라고 한다. A와 B는 양의 정수이고, A < B를 만족한다. A ≤ x ≤ B를 만족하는 모든 정수 x가 집합 S에 속하지 않는다. 집합 S와 n이 주어졌을 때, n을 포함하는 좋은 구간의 개수를 구해보자. 입력 첫째 줄에 집합 S의 크기 L이 주어진다. 둘째 줄에는 집합에 포함된 정수가 주어진다. 셋째 줄에는 n이 주어진다. 출력 첫째 줄에 n을 포함하는 좋은 구간의 개수를 출력한다. 제한 1 ≤ L ≤ 50 집합 S에는 중복되는 정수가 없다. 집합 S에 포함된 모든 정수는 1보다 크거나 같고, 1,000보다 작거나 같다. 1 ≤ n ≤ (집합 S에서 가장 큰 정수) 내 제출 L = int(input()) lst =..
백준 2108 통계학 (Class 2 실버 3)
·
BOJ/Python
문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. 출력 첫째 줄에는 산술평균을 출력한다. 소수점 이하 ..
백준 10814 나이순 정렬 (Class 2 실버 4)
·
BOJ/Python
문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다. 출력 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다. 내 ..
[Pwnable.kr] cmd1
·
Hacking/System
ls -l로 파일을 확인한 뒤에 flag 파일을 읽어보려 했으나 거절당했다. 그래서 cmd1.c 파일을 읽어보았다. #include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh")!=0; r += strstr(cmd, "tmp")!=0; return r; } int main(int argc, char* argv[], char** envp){ putenv("PATH=/thankyouverymuch"); if(filter(argv[1])) return 0; system( argv[1] ); return 0; } filter() 함수에서 flag, sh, tmp를 사용하는 것을 막고 있었다. ..
[Pwnable.kr] blackjack
·
Hacking/System
전체 코드는 여기에서 볼 수 있다. https://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html //Main Function int main(void) { int choice1; printf("\n"); printf("\n"); printf("\n"); printf("\n 222 111 "); printf("\n 222 222 11111 "); printf("\n 222 222 11 111 "); printf("\n 222 111 "); printf("\n 222 111 "); printf("\n"); printf("\n%c%c%c%c%c %c%c %c%c %c%c%c%c%c %c %c ", club, club, cl..
[Dreamhack] Reverse Engineering Stage 6 - Exercise: rev-basic-1
·
Hacking/Reversing
정적 분석 IDA로 파일 열기 문제 파일을 정적분석하기 위해 앞서 배운 IDA를 사용했다. IDA를 실행하고, chall0.exe를 끌어넣는다. 파일이 정상적으로 열리면 다음과 같은 창이 나타난다. 위의 창에서는 문제 파일의 간략한 정보를 띄워준다. 바이너리의 아키텍처는 AMD64 (x86-64), 파일 포맷은 PE (Portable Executable) 구조라는 것을 알 수 있다. 이 정보들을 통해 본격적으로 분석하기 전, 분석에 도움이 되는 정보를 획득할 수 있다. 지금까지 과정을 성공적으로 마치면 위와 같은 창이 나타난다. 이는 바이너리에 디버깅 정보를 담고있는 심볼 경로가 존재하는데, 이를 찾아서 로드하겠냐는 질문창이다. 문제 출제자는 별도의 심볼(.pdb)을 제공하지 않았기 때문에 No를 클릭한..
[Dreamhack] Reverse Engineering Stage 6 - Exercise: rev-basic-0
·
Hacking/Reversing
서론 드림핵 워게임 중 rev-basic-0 문제를 푸는 코스이다. 실행 먼저 다운로드 받은 파일을 실행하여 프로그램이 어떤 식으로 동작하는지 확인해보았다. 워게임 문제와 같이 신뢰할 수 없는 프로그램을 실행할 때는 가상환경(VM)에서 실행하는 것이 바람직하다. 만약 문제 정보를 통해 프로그램의 동작방식이 예상이 간다면 굳이 실행하지 않고 정적분석을 먼저 시도해보는 것도 좋은 방법이다. 윈도우 운영체제에서 기본적으로 제공되는 Windows PowerShell에서 문제 파일을 실행해보았다. 문제 파일의 압축을 해제한 후, 실행해보면 Input : 이라는 문자열이 출력된다. 출력된 문자열 뒤에 AAAA를 입력한 후, 엔터를 치면 Wrong이 출력된다. 문제가 사용자에게 문자를 입력받고 프로그램 내부의 어떤 ..
CHAPTER 01 자료구조 개요 연습문제
·
Data Structure
보호되어 있는 글입니다.