구현 43

[백준] 9020 골드바흐의 추측 (Python 파이썬)

https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 문제 설명 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. ..

[백준] 4948 베르트랑 공준 (Python 파이썬)

https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 문제 설명 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개..

[백준] 1929 소수 구하기 (Python 파이썬)

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 문제 설명 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 풀이 과정 소수란, 1과 자기자신을 제외한 나머지 수로 나누어 떨어지지 않는 수이다. 그래서 소수를 판별하는 가장 간단한 방법은 2부터 자기자신 - 1 까지 for문을 돌면서 나누어 떨어지는지 확인하는 것이다. 하지만, 모두 확인할 필요 없이 제곱근까지만 확인을 하면 된다. 그 이유는 약수들의 곱이 서로 대칭을 이루기 때문인데 예를 들어, 16이라는 수가 있..

[백준] 1978 소수 찾기 (Python 파이썬)

https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 문제 설명 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 풀이 과정 소수란, 1과 자기자신을 제외한 나머지 수로 나누어 떨어지지 않는 수이다. 그래서 소수를 판별하는 가장 간단한 방법은 2부터 자기자신 - 1 까지 for문을 돌면서 나누어 떨어지는지 확인하는 것이다. 하지만, 모두 확인할 필요 없이 제곱근까지만 확인을 하면 된다. 그 이유는 약수들의 곱이 서로 대칭을 이루기 때문인데 예를 들어, 16이라는 수가 있을 때 16의 약수..

[백준] 1011 Fly me to the Alpha Centauri (Python 파이썬)

문제 설명 https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 위 링크에서 주어진 설명처럼, 시작점과 끝점이 주어질 때 공간이동 장치의 작동횟수를 구하는 문제이다. 풀이 과정 먼저, 이 문제는 규칙을 찾아 해결하는 문제이다. 규칙을 찾는 과정이 굉장히 까다로웠는데, 규칙을 찾기 위해 직접 거리 1부터 직접 테이블을 작성해보았다. 먼저 거리가 제곱수일 때를 보면 (노란 배경색), 이동 단계에 새로운 숫자가..

[백준] 2775 부녀회장이 될테야 (Python 파이썬)

문제 설명 https://www.acmicpc.net/problem/2775 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 풀이 과정 먼저 0층 n호에는 n명이..

[백준] 10250 ACM 호텔 (Python 파이썬)

문제 설명 https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 문제의 설명이 그림과 함께 길게 제공되므로 위 링크를 참조바랍니다. 풀이 과정 1203 이라는 호수가 있을 때 앞의 두자리 12를 층수, 뒤의 두자리 03을 호수라고 하자. 핵심적인 부분은 손님들을 먼저 층수를 우선순위로 채우고, 그 다음 호수를 채워나간다. 즉 하나의 열에 대해 모든 행을 채운 후에, 그 다음 열로 이동하여 모든 행을 채우는 형식이다. 그래서, n % h를..

[백준] 1110 더하기 사이클 (Python 파이썬)

문제 설명 https://www.acmicpc.net/problem/1110 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌..

[프로그래머스] 수식 최대화 (Python 파이썬)

programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 문제 설명 문제의 설명이 굉장히 길어 위 링크를 참고하시는 것을 추천드립니다. 수식 ex ("100-200*300-500+20") 이 주어졌을 때 +, -, *의 우선순위를 매번 다르게 하여 나타나는 값들 중 최댓값을 구하는 문제입니다. 원래는 * > +,- 의 우선순위를 갖지만, 이 문제에서는 *>+>- 가 될 수도 있고 +>->* 가 될 수도 있습니다. 풀이 과정 per..

[백준] 1593 문자 해독 (Python 파이썬)

www.acmicpc.net/problem/1593 1593번: 문자 해독 첫째 줄에 고고학자들이 찾고자 하는 단어 W의 길이 g와 발굴된 벽화에서 추출한 문자열 S의 길이 |S|가 빈 칸을 사이에 두고 주어진다. (1≤g≤3000, g≤|S|≤3,000,000) 둘째 줄에 W, 셋째 줄에 S의 실 www.acmicpc.net 문제 설명 W를 이루고 있는 g개의 문자와, 문자열 S가 주어졌을 때, 단어 W가 문자열 S에 들어있을 수 있는 모든 가짓수를 계산하는 프로그램을 작성하시오. 즉, 문자열 S안에서 문자열 W의 순열 중 하나가 부분 문자열로 들어있는 모든 경우의 수를 계산하라는 뜻이다. 예를 들어, W = cAda S = AbrAcadAbRa 이라면 W로 만들 수 있는 순열이 S안에 몇개 등장하는지..