본문 바로가기
기타/알고리즘

(1)자료구조 ① 배열과 리스트

by 사라리24 2024. 4. 9.
SMALL

 

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