1. 숫자의 합 구하기
- 문제
Q. N개의 숫자가 공백 없이 써 있다. 이 숫자를 합해 출력하는 프로그램을 작성하시오. |
|
[입력] | [출력] |
1번째 줄에 숫자의 개수 N (1≤N ≤100), 2번째 줄에 숫자 N개가 공백 없이 주어진다. |
입력으로 주어진 숫자 N개의 합을 출력한다. |
- 풀이방법
1. numbers = '10987654321' 2. numbers -> 정수형으로 변환 3. 결과값에 더하여 누적 |
- 코드 순서
1. n값 받기 2. numbers 변수에 list 함수를 이용하여 숫자를 한 자리씩 나누어 받기 3. sum 변수 선언 4. for numbers 탐색 : sum 변수에서 numbers에 있는 각 자리수를 가져와 더하기 5. sum 출력 |
- 정답
n = input() numbers = list(input())
sum = 0
for i in numbers :
sum = sum +int(i)
print(sum)
|
|
[입력] | [출력] |
1 1 |
1 |
5 54321 |
15 |
25 70000000000000000000 |
7 |
11 10987654321 |
46 |
2. 평균구하기
- 문제
Q. 세준이가 기말고사를 망쳤다. 그래서 점수를 조작해 집에 가져가기로 결심했다.
일단 세준이는 자기 점수 중 최댓값을 골랐다.
그런 다음 최댓값을 M이라고 할 때 모든 점수를 점수/M*100으로 고쳤다.
예를 들어 세준이의 최고점이 70점, 수학점수가 50점이라면 수학점수는 50/70*100 이므로 71.43이다.
세준이의 성적을 이 방법으로 계산했을 때 새로운 평균을 구하는 프로그램을 작성하시오.
|
|
[입력] | [출력] |
1번째 줄을 시험을 본 과목의 개수 N이 주어진다. | 1번째 줄에 새로운 평균을 출력한다. |
(해당 값은 1,000보다 작거나 같다.) | (실제 정답과 출력값의 절대 오차 또는 상대 오차가 10-² 이하이면 정답이다.) |
2번째 줄에 세준이의 현재 성적이 주어진다. | |
(해당 값은 100보다 작거나 같은, 음이 아닌 정수이고, 적어도 1개의 값은 0보다 크다.) |
- 풀이방법
1. 점수를 1차원 리스트에 저장 2. 리스트를 탐색하여 최고점수와 점수의 총합 구하기 3. '총합 *100 / 최고점수 / 과목의 수'를 계산해 다시 계산한 점수의 평균값을 출력 |
- 코드 순서
1. n에 과목의 수 입력 2. mylist에 점수 정보 저장 3. mymax에 mylist 정보 중 최댓값 저장 4. sum에 mylist 모든 데이터 값 더하기 5. sum *100 / mymax / n 출력 |
- 정답
n = input() mylist = list(map(int, input().split()))
mymax = max(mylist)
sum = sum(mylist)
print(sum*100/mymax/int(n))
|
|
[입력] | [출력] |
3 40 80 60 |
75.0 |
3 10 20 30 |
66.66667 |
4 1 100 100 100 |
75.25 |
5 1 2 4 8 16 |
38.75 |
2 3 10 |
65.0 |
'기타 > 알고리즘' 카테고리의 다른 글
(1)자료구조 ④ 슬라이딩 윈도우 (0) | 2024.04.11 |
---|---|
(1)자료구조 ③ 투 포인터 (1) | 2024.04.10 |
(1)자료구조 ② 구간합 (0) | 2024.04.09 |