패키징 도구 pyinstaller py2exe py2app py2exe는 Windows 전용이며, py2app은 mac 전용이다. 클로스 플랫폼은 아니지만 pyinstaller는 두 운영체제에서 모두 사용할 수 있다. pyinstaller는 맥에서 작성된 코드를 맥용으로만, 윈도우에서 작성된 코드를 윈도우용으로만 빌드할 수 있다. 여기에서는 pyinstaller로 ui 파일을 사용한 gui 앱을 빌드하는 과정에서 겪었던 시행착오에 대한 기록이다. pyinstaller 문법을 떼고 자신만의 앱을 작성하기 시작하면 드디어 완성된 앱을 패포하고 싶어진다. 지금까지 확인한 바에 의하면 대중적이며 안정적인 배포 유틸리티는 pyinstaller인 듯하다. 터미널용 앱이나 ui를 하드 코딩으로 만든 앱의 경우는 사용..
Source 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 예제 입력 1 30 20 10 10 10 20예제 출력 1 30 10해설 주변을 걷어내면 x, y값 중에서 하나만 들어온 값을 찾아 그 조합을 출력해 주면 된다. if ~ else if 문으로 한 번 들어온 값을 찾아 저장하여 출력하면 끝이다. 소스코드 #include int main(int argc, char *argv[]) { int x1, x2, x3, x4; int y1, y2, y3, y4; int i; sca..
Source 문제 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다. 출력 첫째 줄에 문제의 정답을 출력한다. 예제 입력 1 6 2 10 3예제 출력 1 1해설 간단한 문제라 딱히 설명할 게 없다. 한 가지 주의해야 할 점은 한수의 좌표 H(x, y)에 사각형 오른쪽 상단 좌표 Rec(w, h)에서 w - x, h - y의 절대값을 구해 둘 중..
Source 문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * ***N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k < 8이다. 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 예제 입력 27예제 출력 *************************..
Source 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개인 경우의 예시이다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수..
Source 문제 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..
Source 문제 베르트랑 공준은 임의의 자연수 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이 주어진다. 출력 각 테스트..
Source 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 예제 입력 1 3 16 예제 출력 1 3 5 7 11 13 해설 입출력만 달리해서 같의 같은 문제가 연달아 있다. 이걸 또 풀어야 하나 싶었다. 그런데 이번 채점 결과를 보니 시간이 212ms였다. 이제까지 푼 문제 중에서 가장 많은 시간이 걸린 문제인 듯하다. 소수 여부를 판별하는 더 빠른 함수를 생각해 봐야겠다. 하지만 오늘은 귀찮으니 이전 문제에서 사용했던 CheckPrime() 함수를 재활용했다. ..
Source 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다. 출력 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. 예제 입력 1 60 100예제 ..
Source 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 1 4 1 3 5 7예제 출력 1 3해설 술 마시면서 코딩하지 말자. 귀찮다, 만사가. 귀찮으니까 해설도 간단히 쓰자. 소수는 1과 자기 자신만을 약수로 하는 수이다. 그런데 약수라는 게 n(테스트할 수)/2을 기준으로 그보다 작은 수와 그보다 큰 수가 짝이 된다. 따라서 테스트할 수를 2로 나눈 수까지만 테스트하면 된다. n / 2값을 2부터 나누어서 한번이라도 나머지가 0인 경우를 만나면 이건 소수가 아니다. 소수가 아..
- Total
- Today
- Yesterday
- word
- 백준
- django
- python3
- 어원
- setText()
- Python
- locallibrary
- 유래
- QGridLayout
- judge
- 리찬규
- QtDesigner
- QComboBox
- books
- 북한말
- baekjoon
- 리규찬
- NK
- PyQt5
- Mac
- BOJ
- 소수
- C
- Tistory
- QLabel
- words
- QLineEdit
- MacOS
- tips
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |