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)
파이썬 공부하고 있는 초보자 입니다. 이렇게 풀어봤습니다.
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)
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
public class numberSort {
// 숫자 배열을 정렬하기 예를들어 홀짝 순으로 정렬하고
// 홀수는 오름차순 짝수는 내림 차순으로 정렬하기
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//짝수 담는 배열
ArrayList<Integer> oddNumber = new ArrayList<Integer>();
//홀수 담는 배열
ArrayList<Integer> notOddNumber = new ArrayList<Integer>();
//배열 에 넣을 데이터 입력받기
while (true) {
System.out.print("배열에 넣을 정수를 입력하세요(999입력시 프로그램 종료) : ");
int inputNumber = scanner.nextInt();
scanner.nextLine(); // 엔터 버퍼 방지용
if (inputNumber == 999) {
break;
}
if(oddNumber.contains(inputNumber) || notOddNumber.contains(inputNumber) ) {
System.out.println("중복!");
}else {
if (inputNumber % 2 == 0) {
oddNumber.add(inputNumber);
} else {
notOddNumber.add(inputNumber);
}
}
}
// 배열 정렬
notOddNumber.sort(Comparator.naturalOrder());
oddNumber.sort(Comparator.reverseOrder());
int index = 1;
//두 배열 합치기
for (int i = 0; i < oddNumber.size(); i ++ ) {
if(index >= notOddNumber.size()) {
notOddNumber.add(oddNumber.get(i));
}else {
notOddNumber.add(index, oddNumber.get(i));
}
index+=2;
}
// 배열 출력
System.out.println(notOddNumber);
}
}
if 를 너무 많이 썼네요..
public class Sorting {
// constructor
public Sorting(int[] sampleData) {
partition(sampleData);
ascendingOrderIt(sampleData);
descendingOrderIt(sampleData);
toInteger(sampleData);
}
// 홀, 짝 sorting
public int[] partition(int[] sampleData) {
return partition(0, sampleData);
}
private int[] partition(int i, int[] sampleData) {
if(!(sampleData[i]%2==1 && sampleData[i+1]%2==0)) {
swapData(i, i+1, sampleData);
}
if(i+2==sampleData.length)
return sampleData;
return partition(i+2, sampleData);
}
// 홀수 Sort - ascending order
public int[] ascendingOrderIt(int[] sampleData) {
for(int i=0; i<sampleData.length; i++) {
for(int j=i+2; j<sampleData.length;j++) {
if(sampleData[i]>sampleData[j])
swapData(i, j, sampleData);
j=j+1;
}
i=i+1;
}
return sampleData;
}
// 짝수 Sort - descending order
public int[] descendingOrderIt(int[] sampleData) {
for(int i=1; i<sampleData.length; i++) {
for(int j=i+2; j<sampleData.length; j++) {
if(sampleData[i]<sampleData[j])
swapData(i, j, sampleData);
j=j+1;
}
i=i+1;
}
return sampleData;
}
// data swap
private void swapData(int i, int j, int[] sampleData) {
int temp = sampleData[i];
sampleData[i]=sampleData[j];
sampleData[j]=temp;
}
// print result
public void toInteger(int[] sampleData) {
for(int i=0; i<sampleData.length; i++)
System.out.print(sampleData[i]+", ");
}
public static void main(String[] args) {
int[] sampleData = {3, 4, 5, 2, 6, 1, 7, 10};
new Sorting(sampleData); // 생성자 호출
}
}
2021年07月21日 20:19
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) #결과 리스트 출력
2021年07月23日 10:15
public static void main(String[] args){
int[] input = {4 ,1 ,3 ,2 ,6 ,5};
// 오름차순으로 정렬
for(int i=0; i< input.length ; i++){
for(int j = i+1; j < input.length ; j++){
int sub;
if(input[i] > input[j]){
sub = input[i];
input[i] = input[j];
input[j] = sub;
}
}
}
System.out.println();
// 짝수만 내림차순으로 정렬
for(int i=1; i< input.length ; i+=2){
for(int j = i+2; j < input.length ; j+=2){
int sub;
if(input[i] < input[j]){
sub = input[i];
input[i] = input[j];
input[j] = sub;
}
}
}
// 출력
for(int i =0; i < input.length ; i++) {
System.out.print(input[i]);
}
}
2021年08月01日 21:13
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)
풀이 작성
코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.