본문 바로가기

전체 글

(166)
백준 1002(터렛) 파이썬(python) 해결 문제 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어진다. 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어진다. 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 이루어져 있다. 한 줄에 x1, y1, r1, x2, y2, r2가 주어진다. x1, y1, x2, y2는 -10,000보다 크거나 같고, 10,000보다 작거나 같은 정수이다. r1, r2는 10,000보다 작거나 같은 자연수이다. 출력 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. 수..
백준 3053(택시 기하학) 파이썬(python) 해결 문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합 반지름 R이 주어졌을 때 유클리드 기하학에서 원의 넓이, 택시 기하학에서 원의 넓이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 반지름 R이 주어진다. R은 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄에는 유클리드 기하학에서 반지름이 R인 ..
백준 4153(직각삼각형) 파이썬(python) 해결 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. 해답을 구하기 위해서 "피타고라스의 정리 공식"을 적용합니다. 예제 중 6, 8, 10의 경우를 보겠습니다. 6과 8이 각각 x와 y라고 했을 때 10이 z가 되며 계산이 일치하기 때문에 직각삼각형입니다. 공식을 성립 시키기 위해서는 입력된 3개의 값 중에서 가장 큰 값이 z가 되..
백준 3009(네 번째 점) 파이썬(python) 해결 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 값을 구하는 쉬운 방법은 세 점의 x와 y의 좌표 중에서 한 번만 언급된 것을 찾는 것입니다. 위의 그림은 예시 입력을 바탕으로 만든 직사각형입니다. 좌표 중에서 x값은 10이 2번 사용되었지만 30은 1번 사용 되었습니다. y값은 20이 2번 사용되었지만 10은 1번 사용되었습니다. 따라서 각 좌표 중 한 번만 사용된 값으로 (30, 10)이 마지막 점의 위치라는 것을 알 수 있습니다. python3 소스코드 # 백준 3009 (..
백준 1085(직사각형에서 탈출) 파이썬(python) 해결 문제 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 제한 ・ 1 ≤ w, h ≤ 1,000 ・ 1 ≤ x ≤ w-1 ・ 1 ≤ y ≤ h-1 ・ x, y, w, h는 정수 출력 첫째 줄에 문제의 정답을 출력한다. Python3 소스코드 # 백준 1085 (직사각형에서 탈출) x, y, w, h = input().split() # 문제에서 요구하는 범위를 벗어났을 경우 오류처리 if (1
백준 9020(골드바흐의 추측) 파이썬(python) 해결 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰 짝수..
백준 4948(베르트랑 공준) 파이썬(python) 해결 문제 베르트랑 공준은 임의의 자연수 n에 대하여 n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하며, 한 줄로 이루어져 있다. (n ≤ 123456) 입력의 마지막에는 0이 주어진다. 해답을 도출하기 위해서..
apk 디컴파일 & 리패키징 (apktool, jadx-gui) 만들어진 앱(apk 파일)을 가져와서 실습을 진행하겠습니다. 디컴파일(decompile) : apk 파일이 어떤 소스들로 구성되어 있는지 확인하는 과정 리패키징(repackaging) : 소스를 수정하고서 다시 apk 파일로 만들어내는 과정 이미 만들어진 apk 파일의 소스를 수정하려면 디컴파일을 먼저 진행해야 합니다. 수정이 완료되면 다시 앱으로 사용할 수 있도록 리패키징 과정을 통해 apk로 만들어 줍니다. 만들어진 apk 파일을 사용하여 진행하겠습니다. 디컴파일과 리패키징 작업을 진행하기 위해서 apktool을 사용할 것이며, 소스 코드를 보기 위해서 jadx-gui를 사용합니다. 그리고 소스 코드를 수정하기 위해서 eclipse를 사용하였습니다. 1. apktool 준비 구글에 apktool을 검..
파이참(pycharm) 설치 및 파이썬(python) 개발 환경 만들기 파이참(pycharm) 프로그램은 파이썬 언어로 개발하기 편하도록 만들어진 툴(tool)입니다. 언어를 잘 사용할 수 있도록 지원해주는 도구의 개념이기 때문에 직접 언어까지 제공하지는 않습니다. 그 말의 의미는, 파이참 프로그램이 있다고 하더라도 컴퓨터가 언어를 모른다면 프로그램은 아무런 소용이 없다는 것입니다. 그렇기 때문에 컴퓨터가 파이썬 언어를 알 수 있도록 언어를 먼저 설치하겠습니다. 1. 파이썬 언어 설치 www.python.org/ Welcome to Python.org The official home of the Python Programming Language www.python.org 해당 링크에 들어가셔서 파이썬 언어를 설치하시기 바랍니다. 그전에 파이썬 언어를 설치하시는 컴퓨터(또는 ..
webhacking.kr old-32 이해하기 old-32 페이지의 구성은 Hit 값에 대한 등수로 되어 있습니다. Hit 수가 높을수록 높은 위치에 있는 것을 알 수 있습니다. 마우스 커서를 가져다가 클릭을 하면 Hit가 되는 것을 확인할 수 있습니다. 하지만 한 번 Hit를 하고 나서는 더 할 수가 없었습니다. Hit를 한 번밖에 할 수 없는 이유는 쿠키에 있었습니다. 쿠키값을 확인해 보니 vote_check 값으로 ok라는 값이 저장되어 있었습니다. 과감하게 삭제하고 클릭하니 Hit가 가능했습니다! 이제 자신의 닉네임을 찾아서 Hit를 하시고 100 Hit를 만드시면 되겠습니다. 해결되었습니다! -끝-
webhacking.kr old-23 이해하기 old-23 페이지에는 "Your mission is to inject "가 적혀있습니다. 코드를 실행시키는 것이 해답인 것 같습니다. 여러 값들을 넣어보면서 어떤 기능이 있는지 알아보았습니다. 영어를 길게 적거나 아래 코드를 집어 넣으면 "no hack"이라고 나타납니다. 영어 단어를 하나씩 적으면 출력이 되는 것을 알 수 있었습니다. 문자가 길어질 경우 모든 경우에 대해서 필터링이 이루어지는 것으로 예상합니다. 그렇다면 영어 단어를 하나씩 인식시키는 방법으로 코드를 만들면 어떻게 될까요. php 코드에서 필터링을 수행하는 방법으로 preg_match() 함수를 사용하는 것이 있습니다. 필터링을 우회하는 방법으로 preg_match()에서 문자열 검사를 방해하는 %00을 사용하겠습니다. 필터링에 대한 ..
백준 1978(소수 찾기) 파이썬(python) 해결 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 이전 C언어 공부할 때 소수 찾는 코드를 만들어 놓은 것이 있습니다. 2020/05/12 - [작업/C 언어] - Perfect C 프로그래밍 연습 7장 4, 5번 해결 Perfect C 프로그래밍 연습 7장 4, 5번 해결 7장부터는 반복문을 포함하는 문제들이 많이 나올 것이기 때문에 어떤 순서대로 처리가 이루어지는지, 처리 후의 값은 어떻게 되는지 순차적으로 적어가면서 해결해 보면 이해가 쉬울 것입니다 zifmfmphantom.tistory.com 제곱근을 사용한 방법으로 소수를 간단하게..