https://www.acmicpc.net/step/6

 

 

 

 

1. 최소, 최대 ( #10818번)

 

 

import sys
input = sys.stdin.readline

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

print('{} {}'.format(min(list), max(list)))

 

 


 

 

2. 최댓값 ( #2562번)

a = []

for i in range(9):
	a.append(int(input()))

print(max(a))
print(a.index(max(a))+1)

 

 


 

 

3. 숫자의 개수 ( #2577번)

 

a = int(input())
b = int(input())
c = int(input())

result = list(str(a * b * c))

for i in range(10):
    print(result.count(str(i)))

 

 


 

 

 

4. 나머지 ( #3052번)

 

 

 

핵심은 set() 함수.

 

리스트 자료형으로 풀 수 있고

집합 자료형에 원소를 추가하는 형태로

풀 수도 있다.

 

리스트 자료형엔 append 함수를,

집합 자료형엔 add 함수를 사용해

요소를 추가해 준다.

 

import sys
input = sys.stdin.readline

a = []
for _ in range(10):
	n = int(input())
    a.append(n % 42)
a2 = set(a)
print(len(a2))

or

import sys
input = sys.stdin.readline

a = set()
for _ in range(10):
	n = int(input())
    a.add(n % 42)
print(len(a))

 

 

 

두 경우 모두

사용된 메모리는 동일하며

시간 차이도 나지 않는다.

 

 

 


 

 

5. 평균 ( #1546번)

 

import sys
input = sys.stdin.readline


n = int(input())
results = list(map(int, input().split()))
max_result = max(results)


list = []
for result in results:
    list.append(result/max_result * 100)
new_avg = sum(list)/n
print(new_avg)

 

 


 

 

6. OX 퀴즈 ( #8958번)

 

import sys

input = sys.stdin.readline

n = int(input())

for _ in range(n):
    results = list(input())
    score = 0
    total_score = 0
    for result in results:
        if result == 'O':
            score += 1
            total_score += score
        else:
            score = 0
    print(total_score)

 

 


 

 

 

7. 평균은 넘겠지 ( #4344번)

 

 

파이썬에는 평균을 구하는 함수가 없음.

시험 점수의 합을 sum 함수로 구하고

학생수로 나누면 평균값을 얻는다.

 

 

for + if 문으로 평균 점수보다 큰 점수를 구별하고

학생수 + 평균 이상 학생수 비율을 f-string을 이용해

소수점 자릿수를 지정한다.

 

 

리스트의 첫 번째 원소는 학생수, 나머지는 점수,

이를 인덱스 + 범위 연산자를 이용해 선택.

 

 

학생수는 nums [0]

점수는 nums [1:]

 

import sys
input = sys.stdin.readline

n = int(input())

for _ in range(n):
    scores = list(map(int, input().split()))
    avg = sum(scores[1:]) / scores[0]
    count = 0
    for score in scores[1:]:
        if score > avg:
            count += 1

    rate = count / scores[0] *100
    print(f'{rate:.3f}%')

    # 혹은 

    print(str("%.3f" % round(count/scores[0] * 100, 3))+ "%")

728x90
반응형

+ Recent posts