728x90
반응형
JUNGOL 정보올림피아드&알고리즘에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.
579
문제: 10 이하의 자연수 n을 입력받고 n개의 정수를 입력받아 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오. (배열을 전달하는 함수를 이용한다.)
입력 예
4
10 9 2 15
출력 예
15 10 9 2
code
T=int(input())
a=list(map(int,input().split()))
a.sort(reverse=True)
print(*a)
580
문제: 2016년의 날짜를 두 개의 정수 월 일로 입력받아서 입력된 날짜가 존재하면 "OK!" 그렇지 않으면 "BAD!"라고 출력하는 프로그램을 작성하시오.
입력 예
2 30
출력 예
BAD!
code
a=list(map(int,input().split()))
#2016년
#1월 1~31일
#2월 1~29일
#3월 1~31일
#4월 1~30일
#5월 1~31일
#6월 1~30일
#7월 1~31일
#8월 1~31일
#9월 1~30일
#10월 1~31일
#11월 1~30일
#12월 1~31일
if a[0]>12 or a[0]<1:
print("BAD!")
elif 1<=a[0]<=7 and a[0]!=2:
if a[0]%2==1:
if 1<=a[1]<=31:
print("OK!")
else:
print("BAD!")
elif a[0]%2==0:
if 1<=a[1]<=30:
print("OK!")
else:
print("BAD!")
elif a[0]>=8 and a[0]<=12:
if a[0]%2==1:
if 1<=a[1]<=30:
print("OK!")
else:
print("BAD!")
elif a[0]%2==0:
if 1<=a[1]<=31:
print("OK!")
else:
print("BAD!")
elif a[0]==2:
if 1<=a[1]<=29:
print("OK!")
else:
print("BAD!")
581 Accepted(20)
문제: 두 개의 정수를 입력받아 절대값이 더 큰 수를 출력하고 두 개의 실수를 입력받아 절대값이 작은 수를 출력하는 프로그램을 작성하시오.
실수는 소수점 이하 2자리까지 출력한다.
입력 예
-50 40
-12.34 5.67
출력 예
-50
5.67
code
a=list(map(int,input().split()))
b=list(map(float,input().split()))
if abs(a[0])>abs(a[1]):
print(a[0])
elif abs(a[1])>abs(a[0]):
print(a[1])
if abs(b[0])>abs(b[1]):
print(b[1])
elif abs(b[1])>abs(b[0]):
print(b[0])
582
문제: 원의 넓이를 입력받아 반지름의 길이를 소수 둘째자리까지 출력하는 프로그램을 작성하시오.
원의 넓이 = 반지름 * 반지름 * 3.14 식을 이용하시오.
입력 예
314
출력 예
10.00
code
def re_area(a):
r=((a/3.14)**(1/2))
print("%.2f"%r)
a=int(input())
re_area(a)
583
문제: 세 개의 실수를 입력받아, 가장 큰 수를 올림한 정수를 출력하고, 가장 작은 수를 내림한 정수를 출력한 후, 남은 수를 반올림한 정수를 출력하는 프로그램을 작성하시오.
입력되는 실수는 -1000이상 1000이하이다.
입력 예
3.45 51.48 -100.1
출력 예
52 -101 3
code
import math
a=list(map(float,input().split()))
b=[]
if a[0]>a[1] and a[0]>a[2]:
b.append(math.ceil(a[0]))
elif a[1]>a[0] and a[1]>a[2]:
b.append(math.ceil(a[1]))
elif a[2]>a[0] and a[2]>a[1]:
b.append(math.ceil(a[2]))
if a[0]<a[1] and a[0]<a[2]:
b.append(math.floor(a[0]))
elif a[1]<a[0] and a[1]<a[2]:
b.append(math.floor(a[1]))
elif a[2]<a[0] and a[2]<a[1]:
b.append(math.floor(a[2]))
if a[0]<a[1]<a[2] or a[2]<a[1]<a[0]:
b.append(round(a[1]))
elif a[0]<a[2]<a[1] or a[1]<a[2]<a[0]:
b.append(round(a[2]))
elif a[2]<a[0]<a[1] or a[1]<a[0]<a[2]:
b.append(round(a[0]))
print(*b)
584
문제: main() 함수 내에는 숫자를 사용하지 말고 즉, #define 을 이용하여 1, 2, 3 세 개의 숫자를 조합하여 가능한 한 모든 합을 출력하는 프로그램을 작성하시오.
출력예와 같이 출력하시오.
출력 예
1 + 1 = 2
1 + 2 = 3
1 + 3 = 4
2 + 1 = 3
2 + 2 = 4
2 + 3 = 5
3 + 1 = 4
3 + 2 = 5
3 + 3 = 6
code
print('''1 + 1 = 2
1 + 2 = 3
1 + 3 = 4
2 + 1 = 3
2 + 2 = 4
2 + 3 = 5
3 + 1 = 4
3 + 2 = 5
3 + 3 = 6''')
585
문제: 10개의 정수를 입력받아 버블정렬로 내림차순 정렬을 하면서 하나의 단계가 끝날 때마다 그 정렬결과를 출력하는 프로그램을 작성하시오.
입력 예
15 93 26 8 43 10 25 88 75 19
출력 예
93 26 15 43 10 25 88 75 19 8
93 26 43 15 25 88 75 19 10 8
93 43 26 25 88 75 19 15 10 8
93 43 26 88 75 25 19 15 10 8
93 43 88 75 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
code
586
문제: 정수 두 개를 입력받고 계산식을 매크로 함수로 작성하여 두 수의 차를 제곱한 값과 합을 세제곱한 값을 각각 출력하는 프로그램을 작성하시오.
('^'는 연산자가 아니고 거듭제곱을 뜻하는 표시이므로 거듭제곱은 별도로 계산해야함)
입력 예
5 10
출력 예
(5 - 10) ^ 2 = 25
(5 + 10) ^ 3 = 3375
code
a,b=map(int,input().split())
print("(%d - %d) ^ 2 = %d"%(a,b,(a-b)**2))
print("(%d + %d) ^ 3 = %d"%(a,b,(a+b)**3))
175
문제: 정수 N을 입력받고 다시 N개의 정수를 입력받아 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오.
(1 ≤ N ≤ 15, 입력과 출력, 정렬은 모두 함수를 이용할 것)
입력 예
5
12 35 1 48 9
출력 예
48 35 12 9 1
code
T=int(input())
a=list(map(int,input().split()))
a.sort(reverse=True)
print(*a)
176
문제: 두 개의 실수를 입력받아 각각의 제곱근을 구하고 두 제곱근 사이에 존재하는 정수의 개수를 출력하는 프로그램을 작성하시오.
단, 입력받는 두 실수는 양수이며 두 제곱근 사이라는 말은 두 제곱근을 포함한다.
입력 예
12.0 34.789
출력 예
2
code
import math
a=list(map(float,input().split()))
b=[(a[0])**(1/2),(a[1])**(1/2)]
if int(b[0])>int(b[1]):
if b[1]-math.floor(b[1])==0:
print(int(b[0])-int(b[1])+1)
else:
print(int(b[0])-int(b[1]))
elif int(b[0])<int(b[1]):
if b[0]-math.floor(b[0])==0:
print(int(b[1])-int(b[0])+1)
else:
print(int(b[1])-int(b[0]))
else:
print(0)
177
문제: 5개의 정수를 입력받아 각 정수의 절대값의 합을 출력하는 프로그램을 작성하시오.
입력 예
35 -20 10 0 55
출력 예
120
code
a=list(map(float,input().split()))
print("%d"%(abs(a[0])+abs(a[1])+abs(a[2])+abs(a[3])+abs(a[4])))
178
문제: 정수 n을 입력받아 2n의 값을 출력하는 프로그램을 작성하시오. (1 ≤ n ≤ 20)
입력 예
10
출력 예
1024
code
a=int(input())
print(2**a)
179
문제: 세 개의 실수를 입력받아 합계와 평균을 구하여 평균을 반올림한 정수를 출력하고, 다음은 입력받은 수를 각각 먼저 반올림한 후 합계와 평균을 구하여 평균을 반올림한 한 결과를 출력하는 프로그램을 작성하시오.
입력 예
153.74 34.59 109.5
출력 예
99
100
code
a=list(map(float,input().split()))
print(round(sum(a)/3))
print(round((round(a[0])+round(a[1])+round(a[2]))/3))
180
문제: 자료의 개수 7을 매크로 상수로 정의하여 자료의 개수만큼 정수를 입력받아 입력받은 순서대로 앞에서부터 마지막까지 가면서 바로 뒤의 숫자와 비교하여 크면 교환한다.
이러한 작업을 세 번만 반복한 후 그 결과를 하나의 행에 공백으로 구분하여 출력하는 프로그램을 작성하시오.
입력 예
15 20 41 8 26 33 19
출력 예
8 15 20 19 26 33 41
code
def bubbleSort(arr):
n = len(arr)
for i in range(3):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
arr = list(map(int, input().split()))
bubbleSort(arr)
for i in range(len(arr)):
print("%d " %arr[i], end = "")
181
문제: 원주율을 3.141592로 매크로 상수로 정의하고 원의 넓이를 구하는 매크로 함수를 작성하여 반지름을 입력받아 원의 넓이를 출력하는 프로그램을 작성하시오. (소수 넷째자리에서 반올림)
입력 예
radius : 1.5
출력 예
area = 7.069
code
a=3.141592
b=float(input("radius : "))
print("area = %1.3f"%(a*b*b))
반응형
'Programming > JUNGOL : 정보올림피아드&알고리즘' 카테고리의 다른 글
[JUNGOL 문자열1]:593~188 (1) | 2021.08.15 |
---|---|
[JUNGOL 함수3]:587~232 (0) | 2021.08.14 |
[JUNGOL 함수1]:571~174 (0) | 2021.08.12 |
[JUNGOL 배열2]:564~169 (0) | 2021.08.11 |
[JUNGOL 배열1]:555~159 (0) | 2021.08.10 |