Programming/JUNGOL : 정보올림피아드&알고리즘

[JUNGOL 배열1]:555~159

토토모에요 2021. 8. 10. 22:26
728x90
반응형

JUNGOL 정보올림피아드&알고리즘에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.

http://www.jungol.co.kr/

555

문제: 문자 10개를 저장할 수 있는 배열을 만들고 10개의 문자를 입력받아 입력받은 문자를 이어서 출력하는 프로그램을 작성하시오.

입력 예

A B C D E F G H I J

출력 예

ABCDEFGHIJ

code

a=list(map(str,input().split()))
print(*a,sep="")

556

문제: 정수 10 개를 저장할 수 있는 배열을 만들어서 1 부터 10 까지를 대입하고 차례대로 출력하는 프로그램을 작성하시오.

출력 예

1 2 3 4 5 6 7 8 9 10

code

a=[1,2,3,4,5,6,7,8,9,10]
print(*a,sep=" ")

557

문제: 10개의 문자를 입력받아서 첫 번째 네 번째 일곱 번째 입력받은 문자를 차례로 출력하는 프로그램을 작성하시오.

입력 예

A B C D E F G H I J

출력 예

A D G

code

a=list(map(str,input().split()))
b=[]
for i in range(0,len(a)+1):
    if i==0 or i==3 or i==6:
       b.append(a[i])
print(*b,sep=' ')

558

문제: 100 개의 정수를 저장할 수 있는 배열을 선언하고 정수를 차례로 입력받다가 0 이 입력되면 0 을 제외하고 그 때까지 입력된 정수를 가장 나중에 입력된 정수부터 차례대로 출력하는 프로그램을 작성하시오.

입력 예

3 5 10 55 0

출력 예

55 10 5 3

code

a=list(map(int,input().split()))
b=[]
i=0
while True:
    if a[i]!=0:
       b.append(a[i])
       i+=1
    elif a[i]==0:
       break
b.reverse()
print(*b)

559

문제: 1반부터 6반까지의 평균점수를 저장한 후 두 반의 반 번호를 입력받아 두 반 평균점수의 합을 출력하는 프로그램을 작성하시오.
반별 평균점수는 초기값으로 1반부터 차례로 85.6 79.5 83.1 80.0 78.2 75.0으로 초기화하고 
출력은 소수 두 번째 자리에서 반올림하여 소수 첫째자리까지 한다.

입력 예

1 3

출력 예

168.7

code

a=[85.6, 79.5, 83.1, 80.0, 78.2, 75.0]
b,c=map(int,input().split())
sum=a[b-1]+a[c-1]
print("%.1f" %sum)

560

문제: 10개의 정수를 입력받아 그 중 가장 작은 수를 출력하는 프로그램을 작성하시오.(입력받을 정수는 1000을 넘지 않는다.)

입력 예

5 10 8 55 6 31 12 24 61 2

출력 예

2

code

a=list(map(int,input().split()))
print(min(a)

561 (Accepted 60)

문제: 10개의 정수를 입력받아 100 미만의 수 중 가장 큰 수와 100 이상의 수 중 가장 작은 수를 출력하는 프로그램을 작성하시오.
(입력되는 정수의 범위는 1이상 10,000 미만이다. 만약 해당하는 수가 없을 때에는 100 을 출력한다.)

입력 예

88 123 659 15 443 1 99 313 105 48

출력 예

99 105

code

a=list(map(int,input().split()))
b=[]
c=[]
d=[]

for i in a:
    if i>=1 and i<100:
        b.append(i)
    elif i<=9999 and i>=100:
        c.append(i)
    elif i>=10000:
        print("{} {}".format(max(b),100))


print("{} {}".format(max(b),min(c)))

562

문제: 10개의 정수를 입력받아 배열에 저장한 후 짝수 번째 입력된 값의 합과 홀수 번째 입력된 값의 평균을 출력하는 프로그램을 작성하시오.
평균은 반올림하여 소수첫째자리까지 출력한다.

입력 예

95 100 88 65 76 89 58 93 77 99

출력 예

sum : 446
avg : 78.8

code

a=list(map(int,input().split()))
b=[]
c=[]
for i in range(0,len(a)):
    if i%2==1:
        b.append(a[i])
    elif i%2==0:
        c.append(a[i])

print("sum : %d\navg : %.1f"%(sum(b),sum(c)/len(c)))

563

문제: 10개의 정수를 입력받아 배열에 저장한 후 내림차순으로 정렬하여 출력하시오.

입력 예

95 100 88 65 76 89 58 93 77 99

출력 예

100 99 95 93 89 88 77 76 65 58

code

a=list(map(int,input().split()))
a.sort(reverse=True)
print(*a)

150

문제: 10개의 문자를 입력받아 마지막으로 입력받은 문자부터 첫 번째 입력받은 문자까지 차례로 출력하는 프로그램을 작성하시오.

입력 예

A E C X Y Z c b z e

출력 예

e z b c Z Y X C E A

code

a=list(map(str,input().split()))
print(*a[::-1])

151

문제: 5개의 정수를 입력받은 후 첫 번째 세 번째 다섯 번째 입력받은 정수의 합을 출력하는 프로그램을 작성하시오.

입력 예

15 20 33 10 9

출력 예

57

code

a=list(map(int,input().split()))
b=[]
for i in range(0,len(a)+1):
    if i%2==0:
        b.append(a[i])

print(sum(b))

152

문제: 10개의 정수를 입력받아 홀수 번째 입력받은 정수의 합과 짝수 번째 입력받은 정수의 합을 출력하는 프로그램을 작성하시오.

입력 예

10 20 25 66 83 7 22 90 1 100

출력 예

odd : 141
even : 283

code

a=list(map(int,input().split()))
b=[]
c=[]
for i in range(0,len(a)):
    if i%2==0:
        b.append(a[i])
    elif i%2==1:
        c.append(a[i])

print("odd : %d\neven : %d"%(sum(b),sum(c)))

153

문제: 100개의 정수를 입력받을 수 있는 배열을 선언한 후 정수를 차례로 입력 받다가 -1이 입력되면 입력을 중단하고 -1을 제외한 마지막 세 개의 정수를 출력하는 프로그램을 작성하시오. (입력받은 정수가 -1을 제외하고 3개 미만일 경우에는 -1을 제외하고 입력받은 정수를 모두 출력한다.)

입력 예

30 20 10 60 80 -1

출력 예

10 60 80

code

a=list(map(int,input().split()))
for i in range(0,len(a)):
    if a[i]==(-1):
        if len(a[i-3:i])<3:
            print(*a[:i])
        else:
            print(*a[i-3:i])

154

문제: 6명의 몸무게를 입력받아 몸무게의 평균을 출력하는 프로그램을 작성하시오.
출력은 반올림하여 소수 첫째자리까지로 한다.

입력 예

23.2 39.6 66.4 50.0 45.6 48.0

출력 예

45.5

code

a=list(map(float,input().split()))
print("%.1f"%(sum(a)/len(a)))

155

문제: 6개의 문자배열을 만들고 {'J', 'U', 'N', 'G', 'O', 'L'} 으로 초기화 한 후 문자 한 개를 입력받아 배열에서의 위치를 출력하는 프로그램을 작성하시오.
첫 번째 위치는 0번이며 배열에 없는 문자가 입력되면 "none" 라는 메시지를 출력하고 끝내는 프로그램을 작성하시오.

입력 예

L

출력 예

5

code

a=['J', 'U', 'N', 'G', 'O', 'L']
b=str(input())
for i in range(0,6):
    if b==a[i]:
        print(i)

    elif b not in a:
        print("none")
        break

156

문제: 세 자리 이하의 정수를 차례로 입력 받다가 999가 입력되면 프로그램을 종료하고 그 때까지 입력된 최대값과 최소값을 출력하는 프로그램을 작성하시오.입력받는 정수는 100개 이하이다.

입력 예

45 19 123 58 10 -55 16 -1 999

출력 예

max : 123 
min : -55

code

a=list(map(int,input().split()))
for i in range(0,len(a)):
    if a[i]==999:
        print("max : %d\nmin : %d"%(max(a[:i]),min(a[:i])))
        break

157

문제: 100 개 이하의 정수를 입력받다가 0 이 입력되면 그 때까지 입력된 정수 중 5의 배수의 개수와 합계 평균을 출력하는 프로그램을 작성하시오.
평균은 소수점 이하 1자리까지 출력한다.

입력 예

35 10 23 100 64 51 5 0

출력 예

Multiples of 5 : 4
sum : 150
avg : 37.5

code

a=list(map(int,input().split()))

for i in range(0,len(a)):
    if a[i]==0:
        b=a[:i]
c=[]        
for j in b:
    if j%5==0:
        c.append(j)

print("Multiples of 5 : %d\nsum : %d\navg : %.1f"%(len(c),sum(c),sum(c)/len(c)))

158

문제: 정수를 입력받다가 0 이 입력되면 0 을 제외하고 그 때까지 입력 받은 개수를 출력한 후 입력받은 정수를 차례로 출력하되 그 수가 홀수이면 2배한 값을, 짝수인 경우에는 2로 나눈 몫을 출력하는 프로그램을 작성하시오.
입력되는 정수의 개수는 100개 이하이다. 

입력 예

8 10 5 15 100 0

출력 예

5
4 5 10 30 50

code

a=list(map(int,input().split()))
for i in range(0,len(a)):
    if a[i]==0:
        print(len(a[:i]))
        b=a[:i]
c=[]
for j in range(0,len(b)):
    if b[j]%2==1:
        c.append(b[j]*2)
    elif b[j]%2==0:
        c.append(b[j]//2)

print(*c)

159

문제: 20 이하의 정수 n을 입력받고 n명의 점수를 입력받아 높은 점수부터 차례로 출력하는 프로그램을 작성하시오.

입력 예

5
35 10 35 100 64

출력 예

100
64
35
35
10

code

n=int(input())
a=list(map(int,input().split()))
a.sort(reverse=True)
for i in a:
    print(i)
반응형