메모리공간을 동적으로 사용하여 데이터 관리하기
프로그램 실행 순서
- 입력할 정수의 개수를 사용자로부터 입력 받는다.
- 입력받은 정수의 개수만큼 정수를 입력받는다.
- 입력받은 정수의 합과 평균 값을 출력한다.
- 할당된 메모리공간을 비운다.
요구사항
- 메모리공간은 사용자의 입력 수의 따라 변동된다.
- 사용한 공간은 마지막에 비워야 한다.
- 배열을 사용하면 안된다.
list
너무 쉬워요.
n = input ("Number of Integer? ")
n_list = input ("Write Number(s): ").split(' ')
sum = 0
for i in n_list:
sum += int(i)
avg = sum/int(n)
print ("SUM: %d" %sum)
print ("AVG: %d" %avg)
del n_list
-
마포네로,
2015年05月14日 17:54
M
D
+1
int(i) 구문이 배열 구조를 사용한거 아닌가요??
제가 파이선은 잘 몰라서요...ᅲᅲ
-
JS.LIM,
2015年05月15日 10:43
M
D
split사용하면 배열 나오는거 아닌가요? 리스트인데
-
빗나감,
2017年12月12日 23:07
M
D
+1
맨 윗분, 스플릿함수 쓰면은 결과가 리스트가 되어서 문제의 요점에 어긋나는게 맞은것 같아요. 분명 어렵지 않은 문제이긴 한데, 굳이 리스트를 쓴 이상 반복문 없이도 내재함수로 풀 수 있는 이점이 있습니다. 물론 이 문제에서는 시간복잡도가 그리 차이나지는 않지만, 만약 난이도가 높아져서 재귀나 메모이제이션이 불가피한 코딩의 경우, 조금이라도 반복문을 줄여서 시간복잡도를 줄이는 편이 좋을것 같습니다. 그 점이 살~짝 아쉽군용
-
암살자까마귀,
2019年04月30日 19:18
M
D
이곳에 해답을 쓰지 말아주세요 // 파이썬은 걍 리스트로 해결되는 문제 아닌가요? 파이썬 리스트는 동적할당으로 아는데 근데 파이썬은 메모리가 실제로 비워졋는지 알 수 없으므로 이 문제는 풀 수 없을 듯.
-
yhpdoit,
2020年04月10日 12:14
M
D
이렇게 풀면 처음에 입력받은 정수의 개수만큼 정수를 입력받는건 강요가아니라 사용자가 스스로 자기가 처음에 쓴 정수만큼 써야하는거아닌가요?
-
fox.j,
2021年02月05日 22:06
M
D
심지어 동작도 제대로 안하는거 같은데요
쉽다고 하시면서 적으셨길래 파이썬 잘하시는 줄 알았는데 그것도 아니네요
-
흐음맨,
2022年02月05日 18:20
M
D
238개의 풀이가 있습니다.
1 / 24 Page
n = input("정수의 개수는?:")
total = 0
for i in range(int(n)):
num = int(input("원하는 정수 입력:"))
total += num
avg = total/int(n) if int(n) >0 else 0
print(total,avg)
del(total,avg)
inp_amount = int(input("입력할 정수의 수를 입력하세요: "))
inp_sum = 0
for x in range(inp_amount):
inp_sum += int(input("숫자를 입력하세요: "))
inp_avg = (inp_sum/inp_amount)
print(f"입력 받은 정수의 합은 {inp_sum}이며, 평균값은 {inp_avg:0.2f}입니다")
del inp_amount, inp_sum, inp_avg
def calculation():
numbers = 0
counts = int(input("Enter the counts : "))
for i in range(counts) :
numbers += int(input("Enter the integer : "))
print(f"Sum : {numbers} \nAverage : {numbers/counts}")
del numbers
del counts
import gc
print('>>> 시작:::', len(gc.get_objects()))
s, n = 0, int(input('입력할 정수개수: '))
for i in range(n):
s += int(input(f'정수{i+1} 입력: '))
print(f"결과:\t정수개수({n}개), 합({s}), 평균({s/n})")
print('>>> 완료:::', len(gc.get_objects()))
del s,n
print('>>> del 후:::', len(gc.get_objects()))
gc.collect()
print('>>> gc 후:::', len(gc.get_objects()))
> >>> 시작::: 156783
> 입력할 정수개수: 5
> 정수1 입력: 2345
> 정수2 입력: 4574
> 정수3 입력: 6799
> 정수4 입력: 6782
> 정수5 입력: 5674
> 결과: 정수개수(5개), 합(26174), 평균(5234.8)
> >>> 완료::: 156786
> >>> del 후::: 156789
> >>> gc 후::: 155989
num = int(input("입력 정수 개수: ")) # 정수 개수 입력 받고
numbers = []
sum_numbers = 0
count = 0
for i in range(num):
numbers = int(input(f"{i+1}번째 정수 입력: "))
sum_numbers += numbers #합계도 동시에
count += 1
average = sum_numbers / count if count > 0 else 0
print(f"합: {sum_numbers }\t평균: {average}")
del sum_of_numbers
del average
num_int = int(input("입력할 정수의 개수: "))
result = 0
for i in range(num_int):
x = int(input("정수 입력: "))
result += x
print(result,result/num_int)
del num_int, result
input_num = int(input("Enter Num. for Tries:"))
_sum = 0;_avg = 0
for i in range(input_num):
_sum += int(input())
_avg = float(_sum / input_num)
print("SUM:",_sum,"AVG:",_avg)
del input_num,_sum,_avg
JAVA
import java.util.Scanner;
public class SelfTest_8 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int total = 0;
System.out.print("정수의 갯수 : ");
int num = scan.nextInt();
for(int i = 1; i<=num; i++){
System.out.print(i + "번 정수 입력 : ");
int input = scan.nextInt();
total += input;
}
System.out.println("입력된 정수의 합 : " + total);
System.out.println("입력된 정수의 평균 : " + total/num);
}
}
num=int(input("정수의 개수 입력 : "))
sum=0
for i in range(num):
n=int(input("정수 입력 : "))
sum+=n
print(sum)
average=sum/n
print(average)
del sum,average,num
import gc
totalsum = 0
times = int(input("input times: "))
for i in range(times):
num = int(input("number: "))
totalsum += num
print(totalsum, totalsum/times)
del totalsum, times
gc.collect()
파이썬 초보라 아직 할당된 메모리를 지운다는 게 정확하게 무슨 뜻인지 이해는 잘 가지 않습니다 ᅲᅲ
풀이 작성
※(注記) 풀이작성 안내
- 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
- 마크다운 문법으로 본문을 작성 해 주세요.
- 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
- 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.