최류현의 컴퓨터 정보공간

👩🏻‍💻프로그래밍/Python 문제풀이

백준 2798번 블랙잭 | [BACKJOON/Python / 2798

문제링크 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. ..

👩🏻‍💻프로그래밍/C

[Codeup - 1092] 1065 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기

문제 설명 세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자. 참고 if(조건) { //조건이 참일 때에만 실행되는 구역(코드블록의 시작) 실행1; 실행2; ... } //코드블록의 끝 의 조건/선택 실행 구조는 주어진 “조건”을 검사해 그 결과가 참인 경우에만 코드블록 안에 작성된 내용들을 순서대로 실행한다. 예시 if(a%2==0) { printf(“%d”, a); } if(b%2==0) { printf(“%d”, b); } if(c%2==0) { printf(“%d”, c); } ** a%2==0 은 a%2가 먼저 수행되고 그 결과를 0과 비교한 참/거짓 값을 계산한다. a%2==0의 의미는 a를 2로 나눈 나머지를 0과 비교한 결과 값(참/거짓)이다. 따라서, if(a%2 == 0) 는 ..

👩🏻‍💻프로그래밍/Python 문제풀이

백준 24262번 알고리즘의 수행 시간 1 | [BACKJOON/Python / 24262]

문제링크 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 문제 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자. MenOfPassion 알고리즘은 다음과 같다. MenOfPassion(A[], n) { i = ⌊n / 2⌋; return A[i]; # 코드1 } 입력 첫째 줄에 입..

👩🏻‍💻프로그래밍/Python

Python 카이사르 암호화

카이사르 암호(Caesar cipher) 카이사르 암호(Caesar cipher)는 로마의 황제였던 줄리어스 시저(Julius Caesar)는 시저 암호라고 불리는 환자 암호(substitution cipher, 문자를 다른 문자로 치환하는 암호)를 사용하였다. 카이사르 암호 또는 치환암호로 불리며 간단한 치환암화중 하나입니다. 카이사르 암호화는 알파벳 집합중 일정한 거리만큼 밀어내어 해당알파벳으로 치환하여 결과값을 반환합니다. 예를들어 'ABC'라는 문자열을 3글자씩 밀어내는 카이사르 암호화의 경우 'A'는 'C'로, 'B'는'D'로, 'C'는 'E'로 치환되어 'CDE'라는 값이 반환됩니다. 현대에 쓰기에는 취약하기때문에 잘 쓰이지 않지만 암호학을 학습하는데 고대 암호로부터 현대의 암호까지 이런 방식..

👩🏻‍💻프로그래밍/Python

파이썬(Python) 이거 하나면 패키지 충돌 걱정 사라짐 .virtualenv 파이썬 가상화

파이썬에서 가상환경을 사용하는 이유 파이썬 개발을 할 때, 프로젝트마다 필요한 패키지와 버전이 다르기 때문에 종종 패키지 관리에 어려움을 겪게 됩니다. 또한 여러 패키지를 설치하다 보면 충돌이 일어나거나 어디에서 문제가 발생했는지 파악하기 어렵습니다. 이런 문제를 해결하기 위해 파이썬은 가상 환경 도구를 제공합니다. 가상환경에서 패키지를 설치하면 패키지 관리도 쉬울뿐더러 다른 컴퓨터 환경에서도 가상환경에서 사용된 패키지 목록들만 requirements.txt 파일로 쉽게 설치할 수 있습니다. 이번 글에서는 파이썬에서 가상 환경을 사용하는 이유와 그 장점에 대해 알아보겠습니다. 파이썬 가상환경 라이브러리 종류 venv(표준 라이브러리) 파이썬 3.3 버전 이상에서는 별도의 설치 없이 바로 사용이 가능한 장..

👩🏻‍💻프로그래밍/드림핵(Dreamhack) 워게임

드림핵(Dreamhack) xss-1 플래그 획득법

문제드림핵의 webhacking 로드맵 과정 중 Cross-Site-Scripting(XSS) 섹션의 첫 번째 단계인 xss-1문제를 살펴보겠습니다. xss취약점을 이용하여 플래그를 획득해야 합니다. 우선 웹사이트에 접속해 보겠습니다. 이런 화면으로 구성되어 있으며 vlun(xss) page와 memo와 flag와 메인페이지 총 네 페이지로 구성되어 있습니다. 1.@app.route("/") : 사용자가 웹사이트 접속 시에 처음으로 나오는 페이지입니다. 2.@app.route("/vuln") : 사용자가 /vuln페이지에 접속하면 param값을 반환하며 param값이 없다면 1을 반환합니다. 3.@app.route("/flag", methods=["GET", "POST"]) : GET과 POST 두 가지..

👩🏻‍💻프로그래밍/Python 문제풀이

백준 3009번 네 번째 점 | [BACKJOON/Python / 3009]

문제링크 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 예제 입력 & 출력 풀이 문제를 이해하기 위해 입력받는 변수를 x, y라고 생각하고 입력받은 3개의 x, y 좌표에 점을 찍은 뒤 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾아야 합니다. 첫 번째 입력된 예제로 설명해보면 x가 파랑 화살표, y가 검..

👩🏻‍💻프로그래밍/Python

파이썬 AES암호화 알고리즘 코드

암호화 알고리즘에는 다양한 종류가 있습니다. 미국 국립표준기술연구소(NIST)에서 표준화한 대칭 블록 방식의 암호인 AES (Advanced Encryption Standard)에 대해서 알아보겠습니다. AES는 미 국가안보국에 의해 1급비밀(Top Secret)에 사용할 수 있도록 승인된 알고리즘 중 최초로 공개되어 있는 알고리즘입니다. 모듈 설치 파이썬에서 사용할 수 있는 PyCryptodome 암호화 라이브러리를 사용해보겠습니다. pip install pycryptodome 터미널에 다음 코드를 붙여 넣어 설치하실 수 있습니다. 필요 모듈 불러오기 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto...

👩🏻‍💻프로그래밍/드림핵(Dreamhack) 워게임

드림핵(Dreamhack) session-basic 플래그 획득법

문제드림핵의 webhacking 로드맵 과정 중 Cookie & Session 섹션의 Cookie 단계인 session-basic실습 문제를 살펴보겠습니다. 서버를 생성하여 문제 페이지에 접속하고, 문제 파일을 받아 파일의 내용도 함께 확인해 보겠습니다. 이전 문제 cookie와 유사하게 인사말이 나오고 로그인가능한 웹페이지로 구성되어 있습니다. 마찬가지로 admin계정으로 로그인하라고 하였으니 admin 계정이 사용하는 쿠키값으로 변조해 주면 되는데 이번에는 세션값도 함께 바꿔줘야 하나 봅니다. 문제해결방법다운로드한 문제파일의 코드 중 로그인 가능한 정보가 guest와 user가 있는데 guest로 로그인 후 확인해 보겠습니다. guest로 로그인하니 admin이 아니라고 나오고 개발자도구에서는 use..

👩🏻‍💻프로그래밍/드림핵(Dreamhack) 워게임

드림핵(Dreamhack) cookie 플래그 획득법

문제 드림핵의 webhacking 로드맵 과정중Cookie & Session 섹션의 cookie실습 문제를 살펴보겠습니다. 문제 해결방법 문제파일을 다운받은뒤, vm서버를 생성한후 페이지( http://host3.dreamhack.games:????/ )로 이동합니다. 로그인 페이지로 이동하여 로그인을 해줘야하는데 문제에서 admin계정으로 로그인을 하면 플래그를 얻을수 있다고 하였으니 admin계정을 사용하여 로그인을 시도해보았지만 password wrong이 뜨네요. 다운받은 문제파일에는 app.py로 구성되어있는 파이썬 파일이 담겨져있습니다. 해당 파일의 코드를 살펴보겠습니다. #!/usr/bin/python3 from flask import Flask, request, render_template..

최류현의 블로그
'👩🏻‍💻프로그래밍' 카테고리의 글 목록 (3 Page)