1 2 3 4 |
질문) 4개의 양의정수를 한 줄에 입력하여, 최소값(포함)에서 최대값(포함)까지의 3의 배수는 리스트 L3에 저장하고, 4의 배수는 리스트 L4에 저장하고... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#공백을 기준으로 분리하여 입력받기 #주의할 점) 각 원소는 sring 형식으로 취급함 list1 = input("네 개의 정수를 입력:").split() #맨 처음 원소를 최소값, 최대값으로 초기화 #정수 형식으로 사용하기 위해 CAST 필수 max=min = int(list1[0]) #입력받은 리스트의 각 항목을 순차적으로 확인 for i in range(0,len(list1)): #현재 최댓값보다 큰 것을 발견하면 최댓값 변경 if (max<int(list1[i])): max = int(list1[i]) #현재 최솟값보다 작은 것을 발견하면 최솟값 변경 if(min>int(list1[i])): min = int(list1[i]) #3의 배수를 보관할 리스트 동적 생성 L3 = list() #최솟값을 3으로 나누었을 때 나머지 계산 remainder = min %3 #최솟값보다 크거나 같은 첫번째 3의 배수를 계산하여 min3에 대입 min3 = min+(3-remainder)%3 #min3에서 max+1까지 3씩 증가하면서 반복 #range에서 두번째 인자 값을 포함하지 않기 때문에 1을 더하였음 for value in range(min3,max+1,3): L3.append(value) #4의 배수를 구하는 부분도 3의 배수를 구하는 것과 일치 #함수로 구현한다면 보다 깔끔하지만 질문자 의도를 벗어나는 것 같아서 과감하게 pass L4 = list() remainder = min % 4 min4 = min+(4-remainder)%4 for value in range(min4,max+1,4): L4.append(value) #결과 출력 print("최솟값:{0} 최댓값:{1}".format(min,max)) print("사이에 있는 3의 배수:",L3) print("사이에 있는 4의 배수:",L4) |