본문 바로가기

프로그램/Python 1000제289

Python 37제] S대 9주차 과제(일의 자리와 십의 자리 바뀐 수로 짝수의 합 구하기) 출쳐 : 반크뉴스 참고풀이] import sys #exit() #0~99사이의 수를 입력한다. while True: N=int(input()) if 0 2022. 3. 24.
Python 36제] S대 9주차 과제(김밥 계산하기) 출처 : 반크뉴스 참고풀이] #Main부분 KimBab=[0,3000,3500,4000] Cnt=[0 for i in range(5)] Sum=0 for i in range(5): Choose=int(input()) if 1 2022. 3. 24.
Python 35제] N개 중에서 R개를 선택했을 때의 경우의 수를 구하는 프로그램을 작성하시오. 출처 : 반크_독도의 날 포스터 참고풀이1] 반복문 사용한 경우의 수 def Combination(n,r): #nCr = n!/(r!(n-r)!) numerator=1 #분자부분 for i in range(n,n-r,-1): numerator*=i denominator=1 #분모부분 for i in range(r,0,-1): denominator*=i #결과 result=numerator//denominator return result #main 부분 N=int(input("전 체 개수를 입력하시오 : ")) R=int(input("선택할 개수를 입력하시오 : ")) print(f"\n{N}C{R} = {Combination(N, R)}") 참고풀이1 결과] 참고풀이2] 재귀호출을 사용한 경우의 수 de.. 2022. 2. 22.
Python 34제] 2021년 한국정보올림피아드 1차대회 중등부 2교시 1번:꿀따기 문제] 아래와 같이 좌우로 N개의 장소가 있다. 장소들 중 서로 다른 두 곳을 골라서 벌을 한 마리씩 둔다. 또, 다른 한 장소를 골라서 벌통을 둔다. 아래 그림에서 연한 회색의 장소는 벌이 있는 장소이고 진한 회색의 장소는 벌통이 있는 장소이다. 두 마리 벌은 벌통으로 똑바로 날아가면서 지나가는 모든 칸에서 꿀을 딴다. 각 장소에 적힌 숫자는 벌이 지나가면서 꿀을 딸 수 있는 양이다. 1. 두 마리가 모두 지나간 장소에서는 두 마리 모두 표시된 양 만큼의 꿀을 딴다. (벌통이 있는 장소에서도 같다.) 2. 벌이 시작한 장소에서는 어떤 벌도 꿀을 딸 수 없다. 위의 그림과 같이 배치된 경우 두 마리의 벌 모두 4 + 1 + 4 + 9 + 9 = 27의 꿀을 따서, 전체 꿀의 양은 54 가 된다. 위의 그.. 2021. 12. 9.
Python 33제] 구구단 결과값 표 만들기 출처 : 반크 2021년 10월 25일 독도의 날 포스터 문제] 구구단 결과값 표를 출력하는 프로그램을 작성하시오. 참고풀이1] print(" "*3,"[ 구구단 결과값 표 ]") print("="*28) for dan in range(1, 10): for i in range(1, 10): print(f'{dan*i:3}',end="") print() 참고풀이 결과1] 참고풀이2] print(" "*3,"[ 구구단 결과값 표 ]") print("="*28) for dan in range(1, 10): for i in range(1, 10): print("%3d"%(dan*i),end="") print() 참고풀이 결과2] 대한민국의 아름다운 영토, 독도 2021. 11. 16.
Python 32제] A,B 두 수 사이의 합을 구하시오. 출처 : 반크 2021년 10월 25일 독도의 날 포스터 문제] 임의의 자연수 두 수 A, B(AB: c=A A=B B=c #A~B까지의 합을 구한다. Sum=0 for i in range(A,B+1): Sum+=i #결과출력 print(f'{A}부터 {B}까지의 합은 {Sum}입니다.') 참고풀이 결과1] 참고풀이2] 가우스(gauss) 덧셈을 활용. #임의의 자연수를 입력한다. A,B=map(int, input("임의의 자연수 두 개를 입력하시오(예: 10 100) : ").split(' ')) #작은 수를 A, 큰 수를 B로 조정한다. if A>B: A, B = B, A #A~B까지의 합을 구한다. Sum=B*(B+1)//2-(A-1)*((A-1)+1)//2 #결과출력 print(f'{A}부터 {B.. 2021. 11. 16.
Python 31제] 1~N까지의 합을 구하시오. 출처 : 반크 2021년 10월 25일 독도의 날 포스터 문제] 임의의 자연수를 입력하여 1부터 입력한 수까지의 합을 구하는 프로그램을 작성하시오. 참고풀이1] #임의의 정수를 입력받는다. N=int(input("임의의 자연수를 입력하시오 : ")) #1~N까지의 합을 구한다. Sum=0 for i in range(1,N+1): Sum+=i # 결과를 출력한다. print(f'1부터 {N}까지의 합은 {Sum}입니다.') 참고풀이 결과1] 참고풀이2] 가우스(gauss) 덧셈 활용. #임의의 정수를 입력받는다. N=int(input("임의의 자연수를 입력하시오 : ")) #가우스 덧셈 수학공식 n*(n+1)/2를 사용한다. Sum=N*(N+1)//2 # 결과를 출력한다. print(f'1부터 {N}까지의.. 2021. 11. 16.
Python 30제] 최대값, 중앙값, 최소값을 구하시오. 출처: 반크 2021년 10월 25일 독도의 날 포스터 문제] 임의의 개수를 입력받아 그 자연수들 중에서 최대값, 중앙값, 최소값을 구하는 함수를 작성하시오. (단, 중앙값은 정수로 출력하시오) 입출력예시] 입력1 2 3 1 출력1 3 2 1 입력2 9 5 8 3 1 4 6 7 출력2 9 5 1 참고풀이] #최대값, 최소값, 중앙값 함수 def MaxMedMin(cList): cList.sort() #중앙값을 구한다. N=len(cList) if N%2==0: M=(cList[N//2]+cList[N//2-1])//2 else: M=cList[len(cList)//2] #결과값을 Main으로 전달한다. return cList[-1], M, cList[0] #Main Part mList=list(map(i.. 2021. 11. 15.
Python 29제] 2020년 한국정보올림피아드 1차대회 중등부 2교시 1번:햄버거 분배 문제] 기다린 벤치 모양의 식탁에 사람들과 햄버거가 아래 그림과 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 k이하인 햄버거를 먹을 수 있다. 왼쪽 오른쪽은 상관없다. 위 그림에서 k=1인 경우를 생각해보자. 이 경우에는 모든 사람은 자신의 위치 바로 옆에 인접한 햄버거만 먹을 수 있다. 10번 위치에 있는 사람은 오른쪽(우리 기준으로) 11번 위치에 있는 햄버를 먹을 있다. 이 경우 다음과 같이 최대 5명의 사람이 햄버거를 먹을 수 있다. ▶ 2번 위치에 있는 사람은 1번 위치에 있는 햄버거를 먹을 수 있다. ▶ 4번 위치에 있는 사람은 5번 위치에 있는 햄버거를 먹을 수 있다. ▶ 6번 위치에 있는 사람은 7번 위치에 있는 햄버거를 먹을 수 있다. ▶ 9번 위치에 있는 사람은 8번.. 2021. 11. 4.
Python 28제] 2019년 한국정보올림피아드 1차대회 중등부 유형3. 2번-직각다각형 문제] 다각형의 두 선분이 연속하는 선분의 꼭짓점을 제외하고는 만나지 않는 다각형을 단순다각형이라고 부른다. 다각형의 각 변이 x축과 y축에 평행한 다각형을 직각다각형이라 부른다. 단순다각형이면서 직각다각형을 단순직각다각형이라 부른다. 아래 두 그름은 단순직각다각형의 예를 보여준다. 단순직각다각형이 주어질 때, 수평선 H가 다각형의 수직선분과 몇 번 교차하는지 또는 수직선 V가 다각형의 수평선분과 몇 번 교차하는지 알고자 한다. 첫 번째 그림에서 수평선 H는 4개의 수직선분과 교차하는 수직선 V는 2개의 수평선분과 교차한다. 두 번째 그림은 첫 번째 그림에서 수평선 H의 위치를 조금 위로 옮긴 것으로 8개의 수직선분과 교차하게 된다. 이때, 단순직각다각형과 가장 많이 교차하는 수평선 H와 수직선 V의 위.. 2021. 11. 1.
Python 27제] 2019년 한국정보올림피아드 1차대회 2교시 중등부 유형3. 1번-양팔 저울 출처 : 반크 2021년 10월 25일 독도의 날 포스터 무게가 서로 다른 k개의 추와 빈 그릇이 있다. 모든 추의 무게는 정수이고, 그릇의 무게는 0으로 간주한다. 양팔 저울을 한 번만 이용하여 원하는 무게의 물을 그릇에 담고자 한다. 주어진 모든 추 무게의 합을 S라 하자. 예를 들어, 추가 3개이고 그 무게가 각각 {1, 2, 6}이며, S=9이고, 양팔 저울을 한 번만 이용하여 1부터 S사이 모든 정수에 대응하는 물을 다음과 같이 그릇에 담을 수 있다. 여기서 X는 그릇에 담는 물의 무게를 나타내고, □는 그릇을 나타낸다. 만약 추의 무게가 {1, 5, 7}이면 S=13이 되고, 양팔저울을 한 번만 사용하여 그릇에 담을 수 있는 무게는 {1, 2, 3, 4, 5, 5, 7, 8, 11, 12, 1.. 2021. 10. 28.
Python 26제] 2021년 한국정보올림피아드 1차 대회 1교시 중등부 사고력 문제 3. 함수 값 구하기 출처 : 반크 2021년 10월 25일 독도의 날 포스터 문제] 양의 정수에 대해 정의되는 f(n)은 다음과 같이 정의된다. ▶ f(1)=0 ▶ n이 2이상의 짝수라면, f(n)=f(n/2)+1 ▶ n이 3이상의 홀수라면, f(n)=f(n+1)+1 f(2049)의 값을 구하시오. 참고풀이] #f(1)=0 #n이 2이상의 짝수 : f(n)=f(n/2)+1 #n이 3이상의 홀수 : f(n)=f(n+1)+1 #f(2049)의 값 def f(N): if N==1: return 0 elif N>=2 and N%2==0: return 1+f(N//2) else: return 1+f(N+1) #main Part print(f(2049)) 결과] 대한민국의 아름다운 영토, 독도의 가을 2021. 10. 26.
반응형