코딩도장

숫자 정렬

자연수 리스트(홀수와 짝수의 개수가 같음)가 주어집니다.(예외 처리 필요) 이 리스트를 정렬해야 합니다. 순서는 홀-짝-홀-짝-...으로 오게 해야 하며, 홀수는 오름차순 정렬로, 짝수는 내림차순 정렬로 배치해야 합니다.

sample input

4 1 3 2 6 5

sample output

1 6 3 4 5 2
sort reverse

2021年07月15日 10:32

이준우

(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

48개의 풀이가 있습니다. 1 / 5 Page

a = [4,1,3,2,6,5,8,11] #자연수 List
hol = [] #홀수 list
chack = [] # 짝수 list
result = [] # 최종 결과
for i in a: #홀수와 짝수 구분하기
 if i%2 ==0:
 chack.append(i)
 else:
 hol.append(i)
hol.sort() #홀수 오름차순 정렬
chack.sort(reverse=True) #짝수 내림차순 정렬
for i in range(int(len(a)/2)): # 홀수 짝수 합치기.
 result.append(hol[i])
 result.append(chack[i])
print(result)

파이썬 공부하고 있는 초보자 입니다. 이렇게 풀어봤습니다.

2021年07月18日 10:24

안성우

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
sample_input = "413265"
odd = [int(x) for x in sample_input if int(x)%2==1]
even = [int(x) for x in sample_input if int(x)%2==0]
sample_output=[]
for i in range(3):
 sample_output.append(sorted(odd)[i])
 sample_output.append(sorted(even, reverse=True)[i])
print(sample_output)

2021年07月29日 20:00

로만가

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
from itertools import chain
nums = [4, 1, 3, 2, 6, 5]
even = sorted([x for x in nums if x % 2 == 0], reverse=True)
odd = sorted([x for x in nums if x % 2 == 1])
print(*chain(*zip(odd, even)))

2021年12月30日 23:35

Noname

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
sample_input = [4,1,3,2,6,5] #주어진 값
a = [] #홀수 리스트
b = [] #짝수 리스트
result = [] #결과 리스트
sample_input.sort() #Sample 리스트를 오름차순으로 전체 정렬
for num in sample_input: #홀수와 짝수 나누기
 if num %2 != 0: #주어진값이 홀수 일 경우 홀수 리스트 추가
 a.append(num) 
 elif num%2 == 0: #주어진 값이 짝수 일 경우 짝수 리스트 추가
 b.append(num)
b.sort(reverse = True) #짝수만 내림차순으로 변경
while a or b : #홀수리스트 또는 짝수 리스트가 없을때까지 반복
 mark01 = a.pop(0) #mark01에 홀수 리스트 제일 앞에 있는 값을 추가 후 홀수 리스트에서는 삭제
 mark02 = b.pop(0) #mark02에 짝수 리스트 제일 앞에 있는 값을 추가 후 짝수 리스트에서는 삭제
 result.append(mark01) #결과 리스트에 mark01 값 추가
 result.append(mark02) #결과 리스트에 mark02 값 추가
print(result) #결과 리스트 출력
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
num_list = [4, 1, 3, 2, 6, 5]
h_list = []
j_list = []
hj_list = []
for i in num_list:
 if i % 2 == 0:
 j_list.append(i)
 else:
 h_list.append(i)
h_list.sort()
j_list.sort(reverse=True)
for i in range(3):
 hj_list.append(h_list[i])
 hj_list.append(j_list[i])
print(hj_list)

2021年08月07日 07:46

[w]*눈꽃*

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
input_list = [4, 1, 3, 2, 6, 5]
odd = [x for x in input_list if x%2 == 1]
even = [x for x in input_list if x%2 == 0]
result = [y for y in zip(sorted(odd), sorted(even, reverse=True))]
final = list(sum(result,()))
print(final)

2021年08月16日 12:36

이형우

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
N = list(map(int,input().split()))
N.sort()
result = []
for i in range(len(N)):
 if (N[i] % 2 == 1):
 result.append(N[i])
 elif (len(N)%2 == 0):
 result.append(N[len(N)-i])
 else:
 result.append(N[len(N)-(i+1)])
print(result)

2021年08月16日 15:40

BlakeLee

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

Python 3

import itertools
def sort_list(alist: list):
 evens = [i for i in alist if i % 2 == 0]
 evens.sort(reverse=True)
 odds = [i for i in alist if i % 2 == 1]
 odds.sort(reverse=False)
 if len(evens) != len(odds):
 raise ValueError("짝수와 홀수의 개수가 같지 않습니다.")
 return list(itertools.chain(*zip(odds, evens)))
if __name__ == '__main__':
 args = [4, 1, 3, 2, 6, 5]
 print(sort_list(args))

2021年08月18日 16:46

mohenjo

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
n = input("").split(" ")
evenlist = [ int(x) for x in n if int(x) % 2 == 0]
oddlist = [ int(x) for x in n if int(x) % 2 != 0]
evenlist.sort(reverse= True)
oddlist.sort()
if len(evenlist) == len(oddlist) :
 i = 0
 while i < len(evenlist):
 print(oddlist[i],evenlist[i],end=" ")
 i += 1
else :
 print("Error")

2021年08月23日 18:30

//python

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
num_list = range(1,101)
odd_list = []
even_list = []
final_list = []
for i in num_list:
 if i % 2 == 0:
 even_list.append(i)
 elif i % 2 == 1:
 odd_list.append(i)
odd_list.sort()
even_list.sort(reverse=True)
for i in range(len(odd_list)):
 final_list.append(odd_list[i])
 final_list.append(even_list[i])
print(final_list)

2021年08月26日 16:14

코딩버거

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

(注記) 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.

sort x 2
reverse x 1
연관 문제
insperChoi, 2023年12月06日 20:57

언어별 풀이 현황
전 체 x 65
python x 48
java x 8
기 타 x 5
javascript x 1
objectivec x 1
cs x 1
cpp x 1
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /