📌문제수현이는 4차 산업혁명 시대에 살고 있는 중학생이다. 코로나 19로 인해, 수현이는 버추얼 학교로 버추얼 출석해 버추얼 강의를 듣고 있다. 수현이의 버추얼 선생님은 문자가 2개인 연립방정식을 해결하는 방법에 대해 강의하고, 다음과 같은 문제를 숙제로 냈다.다음 연립방정식에서 x와 y의 값을 계산하시오.ax+by=cdx+ey=f 4차 산업혁명 시대에 숙제나 하고 앉아있는 것보다 버추얼 친구들을 만나러 가는 게 더 가치있는 일이라고 생각했던 수현이는 이런 연립방정식을 풀 시간이 없었다. 다행히도, 버추얼 강의의 숙제 제출은 인터넷 창의 빈 칸에 수들을 입력하는 식이다. 각 칸에는 -999 이상 999 이하의 정수만 입력할 수 있다. 수현이가 버추얼 친구들을 만나러 버추얼 세계로 떠날 수 있게 도와주자..
📌문제어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 📌풀이분해합 n이 주어졌을 때 생성자를 구하는 문제분해합 = 생성자 + 각 자리 수의 합 생성자는 입력된 분해합보다 작으므로 1부터 n까지 확인str(i)로 입력된 숫자를 문자열로 바꿈 "256"map(int, str(i))로 문자열 ..
📌문제카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다.한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다.김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다.이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다.N장의 카드에 써져 있는 숫자가 주어졌을 때, M을 ..
📌문제삼각형의 세 변의 길이가 주어질 때 변의 길이에 따라 다음과 같이 정의한다.Equilateral : 세 변의 길이가 모두 같은 경우Isosceles : 두 변의 길이만 같은 경우Scalene : 세 변의 길이가 모두 다른 경우단 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우에는 "Invalid" 를 출력한다. 예를 들어 6, 3, 2가 이 경우에 해당한다. 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못한다.세 변의 길이가 주어질 때 위 정의에 따른 결과를 출력하시오. 📌풀이Invalid: 나머지 두 변 길이의 합 가장 긴 변: max((a,b,c))나머지 두 변 길이의 합 = 세 변의 합 - 가장 긴 변 = sum((a,b,c)) -..

📌문제임씨는 1950 년 한국전쟁으로 많은 손해를 본 사람들 중 하나다. 전쟁 통에 손해보지 않은 사람이 어디 있을까 만은 그는 6.25 가 일어나기 전만 해도 충청도 지방에 넓은 대지를 소유한 큰 부자였다. 전쟁이 나자 임씨는 땅문서와 값 나가는 것들만 챙겨서 일본으로 피난을 가지만 피난 중에 그만 땅문서를 잃어버리고 만다. 전쟁이 끝난 후에 임씨의 땅은 이미 다른 사람들의 논밭이 되어 있었고, 임씨는 땅을 되찾으려 했지만 문서가 없으니 생떼 쓰는 것과 다를 바 없었다. 이러다가 임씨는 길바닥에 나앉게 생겼다.이때, 임씨에게 좋은 생각이 떠올랐으니 바로 자신이 습관처럼 땅 깊숙이 뭔가 표식을 해놓았던 사실이다. 임씨는 한적할 때마다 자신의 논밭을 거닐다가 땅속 깊은 곳에 자신의 이름이 씌어진 옥구슬을..
📌문제창영이는 삼각형의 종류를 잘 구분하지 못한다. 따라서 프로그램을 이용해 이를 외우려고 한다.삼각형의 세 각을 입력받은 다음,세 각의 크기가 모두 60이면, Equilateral세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene세 각의 합이 180이 아닌 경우에는 Error를 출력하는 프로그램을 작성하시오. 📌풀이1. 세 각의 크기가 모두 60으로 같은 경우 Equilateral a==b==c==602. 세 각의 합이 180(a+b+c==180)이고, 두 각이 같은 경우 Isosceles a==b or b==c or c==a3. 같은 각이 없는 경우 Scalene4. 세 각의 합이 180이 아닌 경우 ..
📌문제한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 📌풀이현재 위치 (x,y)오른쪽 위 꼭짓점 (w,h) w-x: 오른쪽 경계선까지의 거리x: 왼쪽 경계선까지의 거리h-y: 위쪽 경계선까지의 거리y: 아래쪽 경계선까지의 거리 이 네가지 중 최솟값을 구하면 직사각형의 경계선까지 가는 거리의 최솟값 📌코드x, y, w, h = map(int, input().split())print(min(w - x, x, h - y, y))
📌문제정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 📌풀이소인수분해: 1보다 큰 자연수를 소인수(소수인 인수)들만의 곱으로 나타내는 것 n을 2부터 n까지 차례대로 나누는데 while문을 사용해서 더이상 나누어 떨어지지 않을 때까지 같은 수로 반복해서 나눔작은 숫자부터 나눌 수 있는 만큼 최대한 나눈 후 다음 숫자로 넘어가는 것이 중요 📌코드n = int(input())if n == 1: print("")else: for i in range(2, n + 1): # i로 나눌 수 없을때까지 나누기 while n % i == 0: print(i) n = n / i
📌문제자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 📌풀이m, n 사이 자연수 중 1이 포함되어 있다면 1은 소수가 아니므로 판별 제외m, n 사이 자연수들을 각각 2부터 sqrt(i)로 나눠서 나누어 떨어지는 수가 없다면 소수 소수 판별 시 2 ~ i-1가 아닌 2 ~ sqrt(i)까지만 검사하면 충분 📌코드import mathm = int(input())n = int(input())sum = 0min =..
📌문제주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 📌풀이소수: 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수입력받은 수를 2부터 입력받은수-1까지 나누어보면서 나누어 떨어지는 수가 하나도 없는 경우(즉, 소수)에만 카운트 📌코드n = int(input())nums = list(map(int, input().split()))cnt = 0for i in nums: if i == 1: # 1은 소수가 아님 continue for j in range(2, i): if i % j == 0: break else: cnt += 1print(cnt)