본문 바로가기

프로그램/Python 1000제332

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.
Python 25제] 2021년 한국정보올림피아드 1차 대회 1교시 중등부 사고력 문제 1. 다른 모자 쓰기 출처 : 반크 독도포스터 문제] N명의 사람이 있다. 이 사람들은 모두 서로 다른 모자를 쓰고 있는데, 이 모자를 벗어서 모아두었다가 다시 모자를 쓴다. 모자를 쓰는 방법의 수는 총 N! = N × (N − 1) × · · · × 1가지이다. 이 중, 어떤 사람도 자신이 처음 썼던 모자를 다시 쓰지 않는 방법의 수는 N = 2이면 1가지, N = 3이면 2 가지이다. N = 4이면 몇 가지가 있는가? 정답] 9 참고풀이] def Fac(n): if n==1: return 1 return n*Fac(n-1) def Count(X): result=0 for a in range(2,X+1): if a%2==0: result += int(Fac(X)/Fac(a)) else: result -= int(Fac(X).. 2021. 10. 22.
Python 24제] USACO 2020 DECEMBER CONTEST, BRONZE PROBLEM 1. DO YOU KNOW YOUR ABCS? 출처 : 반크 독도 포스터 문제] Farmer John's cows have been holding a daily online gathering on the "mooZ" video meeting platform. For fun, they have invented a simple number game to play during the meeting to keep themselves entertained. Elsie has three positive integers A, B, and C (A≤B≤C). These integers are supposed to be secret, so she will not directly reveal them to her sister Bessie. Instead, she gi.. 2021. 10. 7.
Python 23제] 깊이 우선 탐색을 활용한 막대자르기 출처 : 반크 독도 포스터 문제] 길이 8m의 막대를 3명이서 1m단위로 자를려고 할 때 몇 번이면 1m 막대가 될 수 있는지 프로그램을 작성하시오. (단, 하나의 막대는 한 사람만 자를 수 있다.) 8 -> 4, 4 로 자른다 1번 4, 4 -> 2, 2, 2, 2로 자른다 2번 2,2,2 -> 1,1,1,1,1,1로 자른다 3번 2 -> 1,1로 자른다 4번 그러므로 총 4번을 자르면 8m 막대가 1m막대로 만들수 있게 된다. 입력 예시1] 20, 3 출력 예시1] 8 입력 예시2] 100, 5 출력 예시2] 22 참고풀이] #x: 막대기 총수 #y: 막대기 자를 인원수 #n: 현재 자를 막대기 개수 def cutDef(x,y,n): if n>=x: #자를 막대기가 1m가 되면 작업을 끝낸다. ret.. 2021. 10. 5.
Python 22제] 파워 유저를 위한 파이썬 EXPRESS] p180 CHAPTER 4. 도전문제 문제] 1) p180 산수 문제 프로그램 참고하세요. 2) 덧셈 뿐만 아니라 뺄셈 문제도 출제할 수 있도록 프로그램을 수정하라. 3) 한 번이라도 맞으면 반복을 종료하도록 프로그램을 수정하라. 참고풀이] import random flag=True while flag: x=random.randint(1,100) y=random.randint(1,100) c=random.randint(1,2) if c==1: answer=int(input(f"{x} + {y} = ")) else: answer=int(input(f"{x} - {y} = ")) y*=-1 if answer==x+y: print("잘했어요!!") flag=False else: print("틀렸어요. 하지만 다음번에는 잘할 수 있죠?") 참고풀이.. 2021. 9. 24.
Python 21제] 파워 유저를 위한 파이썬 EXPRESS] p170 CHAPTER 4. 도전문제 문제] n-각형의 len길이 만큼 변의 길이를 입력받아 그리는 프로그램을 작성하시오. 참고풀이] import turtle t=turtle.Turtle() t.shape("turtle") #원하는 각형을 입력받는다. s=turtle.textinput("","몇 각형을 원하시나요?") n=int(s) lenStr=turtle.textinput("","한변의 길이를 입력하시오?") len=int(lenStr) t.penup() t.goto(-100,-100) t.pendown() for i in range(n): t.forward(len) t.left(360/n) turtle.mainloop() 참고풀이 결과] 대한민국의 아름다운 영토, 독도의 가을 2021. 9. 17.
반응형