이 페이지는 코딩도장 데이터의 읽기 전용 정적 보관본입니다.

카드 역배치(2015년 KOI 지역본선 고등)

1부터 20까지 숫자가 하나씩 쓰인 20장의 카드가 아래 그림과 같이 오름차순으로 한 줄로 놓여있 다. 각 카드의 위치는 카드 위에 적힌 숫자와 같 이 1부터 20까지로 나타낸다.

이제 여러분은 다음과 같은 규칙으로 카드의 위치 를 바꾼다: 구간 [a,b] (단, 1≤a≤b≤20) 가 주어지면 위치 a부터 위치 b까지의 카드를 현 재의 역순으로 놓는다.

예를 들어, 현재 카드가 놓인 순서가 위의 그림과 같고 구간이 [5,10]으로 주어진다면, 위치 5부터 위치 10까지의 카드 5,6,7,8,9,10을 역순으 로 하여 10,9,8,7,6,5로 놓는다. 이제 전체 카드가 놓인 순서는 아래 그림과 같다.

이 상태에서 구간 [9,13]이 다시 주어진다면, 위 치 9부터 위치 13까지의 카드 6,5,11,12,13 을 역순으로 하여 13,12,11,5,6으로 놓는다. 이제 전체 카드가 놓인 순서는 아래 그림과 같다.

오름차순으로 한 줄로 놓여있는 20장의 카드에 대해 10개의 구간이 주어지면, 주어진 구간의 순 서대로 위의 규칙에 따라 순서를 뒤집는 작업을 연속해서 처리한 뒤 마지막 카드들의 배치를 구하 는 프로그램을 작성하시오.

입력 총 10개의 줄에 걸쳐 한 줄에 하나씩 10개의 구간이 주어진 다.

i번째 줄에는 i번째 구간의 시작 위치 ai와 끝 위치 bi가 차례대로 주어진다.

이때 두 값의 범위는 1≤ai≤bi≤20이다.

출력 1부터 20 까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했 을 때 마지막 카드들의 배치를 한 줄에 출력한다.

입력 예시:

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 10

출력 예시: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

출처: 2015 KOI지역본선 고등

1차원 배열

2015/07/18 09:30

코딩호빵이

90개의 풀이가 있습니다.

cards = range(1,21)
for i in range(10):
    a,b = map(int, raw_input().split())
    cards = cards[:a-1]+list(reversed(cards[a-1:b]))+cards[b:]
print ' '.join([str(x) for x in cards])

2016/01/23 20:37

상파

package sss;

import java.util.Scanner;

public class Reverse_Card {

    public static void main(String[] args) {
        int[] card = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
        int[] arg = new int[2];
        Scanner scan = new Scanner(System.in);

        for(int i = 0; i < 10; i++){
            arg[0] = scan.nextInt();
            arg[1] = scan.nextInt();
            System.out.println(arg[0] + " " +arg[1]);
            card = reverse_card(arg[0], arg[1], card);
        }
        for(int i = 0; i < 20; i++)
            System.out.print(card[i]+ " ");
    }

    private static int[] reverse_card(int i, int j, int[] card) {
        int[] arrangment = new int[2];

        for(;i <= j;i++,j--){
            arrangment[0] = card[i-1];
            arrangment[1] = card[j-1];
            card[i-1] = arrangment[1];
            card[j-1] = arrangment[0];
        }
        return card;

    }

}

2017/02/20 18:27

KimSeonbin

JAVA

import java.util.*;

public class MixMatch{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);

        int[] card = new int[20];
        for(int i=0;i<20;i++){
            card[i]=i+1;
        }       

        for(int i=0;i<10;i++){
            System.out.print("Enter two numbers: ");
            int a=input.nextInt();
            int b=input.nextInt();

            for(int j=a;j<b;j++){
                for(int k=a;k<(b-(j-a));k++){
                    int temp=card[k-1];
                    card[k-1]=card[k];
                    card[k]=temp;                   
                }
            }
            for(int k:card)
                System.out.println(k);
        }
    }
}

2017/05/07 17:22

CHIJE PARK

#include<cstdio>
int main(){int a,b,c[20],d,i,j,k;for(i=0;i<20;i++)c[i]=i+1;for(i=0;i<10;i++){scanf("%d%d",&a,&b);a--;b--;j=a;k=b;for(;;){d=c[j];c[j]=c[k];c[k]=d;if(j==a+(b-a)/2)break;j++;k--;}}for(i=0;i<20;i++)printf("%d ",c[i]);}

2015/07/18 09:32

코딩호빵이

+1 으아아아아아 개행하고싶다아아아아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ - Jung Gyuseok, 2015/11/05 10:04
p1 = open( "cardun.text", "r")

aa = []

for i in range(1,20+1):
  aa.append ( i ) 

for line in p1 :
  a,b = map(int, line.split())  
  bb = aa[a-1:b]  
  bb.reverse()
  aa[a-1:b] = bb

print aa

2015/07/29 16:03

Kim JungRae

Python 2.7

a = range(21)
for i in range(10):
    p = map(int, raw_input().split())
    a[p[1]:p[0]-1:-1] = a[p[0]:p[1]+1]
print ' '.join(map(str, a[1:]))

2015/08/06 17:39

최 재민

void exce91()
{
    int a, b;
    int arr[20] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 };


    for (int i = 0; i < 10; i++)
    {
        scanf_s("%d %d", &a, &b);

        while (a < b)
        {
            int temp = arr[a - 1];
            arr[a - 1] = arr[b - 1];
            arr[b - 1] = temp;

            a++;
            b--;
        }
    }

    for (int i = 0; i < 20; i++)
        printf("%d ", arr[i]);
}

2015/08/11 15:29

조서현

# -*- coding: cp949 -*-

card_entry = []

for num in range(1, 21):
    card_entry.append(num)

count  = 1

while count < 11:
    print "%d번째 입력" %count
    a = input("a를 입력하시오: ")
    b = input("b를 입력하시오: ")

    if a > b:
        print "a must be equal to or less than b"
        continue
    if a > 20 or b > 20:
        print "Input value must be equal to or less than 20"
        continue

    lst_temp = card_entry[a - 1 : b]
    lst_temp.reverse()
    card_entry[a - 1 : b] = lst_temp

    count += 1


print card_entry

2015/08/18 21:27

박 해수

C++로 해보았는데 아직 프로그래밍초보라 자신감이 없네요...

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
    char cArray[20], cFor, cSave, cCount; //http://codingdojang.com/scode/486
    int iShift[2];
    for (cFor = 0; cFor < 20; cFor++)
    {
        cArray[cFor] = cFor + 1;
    }
    for (cCount = 1; cCount <= 10; cCount++)
    {
        scanf("%d%d", &iShift[0], &iShift[1]);
        for (cFor = 0; cFor < (iShift[1] - iShift[0]+1)/2; cFor++)
        {
            cSave = cArray[cFor+iShift[0]-1];
            cArray[iShift[0] + cFor-1] = cArray[iShift[1] - cFor-1];
            cArray[iShift[1] - cFor-1] = cSave;
        }
    }
    for (cFor = 0; cFor <= 19; cFor++)
    {
        printf("%2d ", cArray[cFor]);
    }
}

2015/09/18 22:02

진재훈

prev = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
start = []
end = []
for i in range(10):
    a = input()
    token = a.split()
    start.append(int(token[0])-1)
    end.append(int(token[1]))


for i in range(len(start)):
    a = start[i]
    b = end[i]
    x = prev[:a]
    y = prev[a:b]
    z = prev[b:]
    y.reverse()
    prev = x + y + z

print(prev)

2015/11/13 18:48

강인구

    Sub Main()
        Dim oArr() As Integer = Enumerable.Range(1, 20).ToArray

        For k As Integer = 1 To 10
            Dim input As String = Console.ReadLine

            Dim n As Integer = input.Split(" ")(0) - 1
            Dim m As Integer = input.Split(" ")(1) - 1

            For j As Integer = n To n + (m - n) / 2
                Dim tmp As Integer = oArr(j)
                oArr(j) = oArr(m - (j - n))
                oArr(m - (j - n)) = tmp
            Next
        Next

        Console.WriteLine(String.Join(" ", oArr))
    End Sub

2015/11/28 13:24

Steal

card = list(range(1,21))

for i in range(10):
    partial_range = input('Enter a, b (1<= a < b <=20): ').split()
    a, b = int(partial_range[0]), int(partial_range[1])
    if a == 1:
        card[a-1:b] = card[b-1::-1]
    else:
        card[a-1:b] = card[b-1:a-2:-1]

2015/12/31 11:07

SPJung

$org = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");
function reverse_card (&$arr, $start, $end) {
    $target = array_slice($arr, $start, ($end - $start));
    $rev = array_reverse($target);
    $max = sizeof($target);
    for ($i = 0; $i < $max; $i++) {
        $arr[$i + $start] = $rev[$i];
    }
}

for ($j = 1; $j < 11; $j++) {
    reverse_card($org, $j, $j);
}

2016/01/07 18:03

물빛미르

Ruby

rev = ->nums,pos { a,b=pos; nums.insert(a-1,*nums.slice!(a-1..b-1).reverse) }
r_cards= -> { puts (1..10).map{gets.split.map &:to_i}.reduce([*1..20], &rev)*' ' }

Test

cards = [*1..20]
expect( rev[cards, [5,10]] ).to eq [1,2,3,4,10,9,8,7,6,5,*(11..20)]

rev_commands = (1..10).map {|e|"#{e} #{e}\n"}.join
result_cards = [*"1".."20"].join(" ")+"\n"
$stdin = StringIO.new(rev_commands)
expect{ r_cards.call }.to output(result_cards).to_stdout

2016/02/27 18:01

rk

생각보다 간단하게 끝나서 어리둥절하네요. 문제를 잘못이해한건가...

ranges = []
for _ in range(10):
    ranges.append(tuple([int(x) for x in input().split()][:2]))
cards = list(range(1, 21))
for (a, b) in ranges:
    cards[a-1:b] = cards[b-1:a-2:-1]
print(cards)

2016/03/24 11:01

룰루랄라

while __name__ == '__main__':
    crds = list(x+1 for x in range(20))
    for x in range(10):
        a, b = map(int, input().split())
        crds[a-1:b] = list(reversed(crds[a-1:b]))
    print(' '.join(map(str,crds)))

파이썬 3.5.1

2016/04/12 19:05

Flair Sizz

-- coding: cp949 --

card_entry = []

for num in range(1, 21): card_entry.append(num)

count = 1

while count < 11: print "%d번째 입력" %count a = input("a를 입력하시오: ") b = input("b를 입력하시오: ")

if a > b:
    print "a must be equal to or less than b"
    continue
if a > 20 or b > 20:
    print "Input value must be equal to or less than 20"
    continue

lst_temp = card_entry[a - 1 : b]
lst_temp.reverse()
card_entry[a - 1 : b] = lst_temp

count += 1

print card_entry

2016/04/22 15:41

김수현

Python 3.4.4

cards = list(range(0, 21))

for i in range(10):
    s, e = map(int, (input().split()))
    cards[s:e+1] = cards[e:s-1:-1]

print(cards[1:])

2016/05/12 15:01

SanghoSeo

#파이썬3.5.1
numbers = [x for x in range(1,21)]
for i in range(10):
    start,stop = map(int,input().split())
    start -= 1
    numbers = numbers[:start] + numbers[start:stop][::-1] + numbers[stop:]
print(' '.join(list(map(str,numbers))))

2016/05/15 13:15

차우정

C#으로 작성했습니다.

        public List<int> ReverseCardOrder(List<int[]> inputs)
        {
            var output = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
            foreach (var input in inputs) 
                output.Reverse(input[0], input[1] - input[0]);
            return output;
        }

2016/05/30 12:21

Straß Böhm Jäger

제가 작성한 C++ code입니다. 주어진 범위에서 카드를 역배치하는 과정을 simulate 해줬어요 (사실 STL에 있는 reverse()를 써도 될 것 같았지만 ㅋㅋㅋ)

#include <iostream> 
#include <cstdlib> 
#include <algorithm> 
#include <vector> 
using namespace std; 

int main(){
    vector<int> a; 
    for (int i = 0; i < 20; i++){
        a.push_back(i+1); 
    }
    for (int i = 0; i < 10; i++){
        int start,end;  
        scanf("%d %d",&start,&end); 
        --start,--end;  
        int mid; 
        if ((end-start)%2 == 0) mid = (start+end)/2 - 1;  
        else mid = (start+end)/2;  
        int idx = 0;  
        for (int j = start; j <= mid; j++){
            swap(a[j],a[end-idx]); 
            ++idx;  
        }
    }
    for (int i = 0; i < 20; i++){
        printf("%d ",a[i]); 
    }
    printf("\n"); 
    return 0; 
}

2016/06/06 15:14

iljimae

def do(in_):
    card = list(range(1, 21))
    in_ = in_.strip().split('\n')
    for x in in_:
        a, b = map(int, x.strip().split(' '))
        if a - b == 0:
            continue
        card[a - 1:b] = card[b - 1:a - 2:-1]
    print(card)

do("""
5 10
9 13
""")

do("""
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
""")

Python 3.5.2에서 작성하였습니다.

2016/12/05 14:32

Yeo HyungGoo

include

void reverse(int arr[], int start, int end) { int i; for (i = start; i <= (start+end-1)/2; i++) { int tmp = arr[i]; arr[i] = arr[start+end-i]; arr[start+end-i] = tmp; } return; }

int main() { int arr[20]; int i, start, end; for (i = 0; i < 20; i++) { arr[i] = i+1; }

for (i = 0; i < 10; i++) {
    scanf("%d %d", &start, &end);
    reverse(arr, start-1, end-1);
}

for (i = 0; i < 20; i++) { printf("%d ", arr[i]); }
printf("\n");
return 0;

}

2016/12/21 16:33

리코둔

arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

for x in [input().split(' ') for x in range(10)]:
    arr = arr[:int(x[0])-1]+arr[int(x[1])-1:int(x[0])-2:-1]+arr[int(x[1]):]
    print(arr)

#### 2017.01.06 D-412 ####

2017/01/06 23:15

GunBang

def card(data):
    result=list(range(1,21))
    for i in range(len(data)):
        num=data[i]
        inde=[result.index(num[0]), result.index(num[1])]
        inde.sort()
        temp=result[inde[0]:inde[1]+1]
        temp.reverse()
        result[inde[0]:inde[1]+1]=temp
    return result
card([[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10]])


2017/02/15 21:11

김구경

MALTAB 입니다. flipud (또는 fliplr) 을 이용했습니다.

num_array=(1:20).';
for p=1:20
    shuffle_num=str2num(input(' ','s'));
    num_array(shuffle_num(1):shuffle_num(2))=flipud(num_array(shuffle_num(1):shuffle_num(2)))
end
num_array

2017/03/05 11:58

c0din9

cards = list(range(1,21))

count = 0

while count<=10:

        ai = int(input())
        bi = int(input())
        dispose = cards[ai-1:bi]
        dispose.sort(reverse=True)
        cards = cards[0:ai-1] + dispose + cards[bi:]
        count += 1


print(cards)




2017/03/30 16:07

ken choi

import java.util.Arrays;
import java.util.Scanner;

import static java.lang.System.in;

public class CardReverse {

    static Integer[] cards = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};

    public static void main(String[] args) {
        Scanner sc = new Scanner(in);
        int[][] n = new int[10][2];

        for (int i = 0; i < 10; i++) {
            n[i][0] = sc.nextInt();
            n[i][1] = sc.nextInt();
        }

        for (int i = 0; i < 10; i++) {
            int s = n[i][0];
            int e = n[i][1];

            int l = e - s + 1;
            int t[] = new int[l];

            for (int j = s; j <= e; j++) {
                t[j - s] = cards[j - 1];
            }

            for (int j = s; j <= e; j++) {
                cards[j - 1] = t[e - j];
            }
        }

        System.out.println(Arrays.toString(cards));
    }
}

2017/04/03 11:56

genius.choi

#include <stdio.h>

int main(int argc, const char * argv[]) {

    int card[21]={0};
    int a,b;
    int temp;


    printf("숫자의 범위를 입력하시오(1-20):");
    scanf("%d %d",&a,&b);

    for (int i=1; i<21;i++)
    {
        card[i]=i;
    }

    if (a>b)
    {
        temp=a;
        a=b;
        b=temp;
    }

    while (a<b)
    {
        temp=card[a];
        card[a]=card[b];
        card[b]=temp;
        a++;
        b--;
    }

    for (int i=1; i<21;i++) {
        printf("%d ",card[i]);
    }
    puts("");

    return 0;
}

2017/04/12 17:08

김우진

package training;

import java.util.ArrayList;
import java.util.Scanner;

public class CardShuffle {

    public static void main(String[] args) {
        int iCount = 0;

        System.out.println("Please Insert SHUFFLE RANGE(From ~ TO)?  ex) 4 9");
        Scanner sc = new Scanner(System.in);
        ArrayList<String> arrIn = new ArrayList<String>();
        while(iCount<20){
            arrIn.add(sc.next());
            iCount++;
        }

        int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; // card number

        ArrayList<Integer> arrList = new ArrayList<Integer>();
        for(int i=0;i<arr.length;i++){          
            arrList.add(i, arr[i]);
        }

        for(int i=0;i<arrIn.size();i++){
            if(i%2==0){
                arrList = shuffle(arr,arrList,Integer.parseInt(arrIn.get(i)),Integer.parseInt(arrIn.get(i+1)));
            } else {
                continue;
            }
        }

        System.out.println(arrList);
    }

    public static ArrayList<Integer> shuffle(int[] arr, ArrayList<Integer> arrList, int iNum1, int iNum2){
        iNum1--; // index이므로 1을 뺀다.
        iNum2--; // index이므로 1을 뺀다.

        for(int i=0;i<arr.length;i++){
            if(i >= iNum1 && i <= iNum2){
                arrList.set(i, arr[iNum2-(i-iNum1)]);
            } else {
                arrList.set(i, arr[i]);
            }
        }       
        return arrList;
    }
}

2017/04/16 18:01

acedo

list=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
def rev(a,b):
    insert = list.index(a)
    ch=[]
    for i in range(a,b+1):
        ch.append(list.pop(list.index(i)))
    ch.reverse()
    k = -1
    for i in ch:
        k=k+1
        list.insert(insert+k,i)
    return list

print(rev(5,11))
print(rev(15,19))

2017/04/18 13:18

조현

Python 3.4.2 List slicing & reverse()

def range_reverse(card,ran): # 구간 역순 섞기 함수
    chop = card[ran[0]-1:ran[1]]
    chop.reverse()
    card[ran[0]-1:ran[1]] = chop
    return card

ori = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] # 최초배열

ran = []
for i in range(10):
    ran.append(list(map(int,input("Range: ").split(',')))) # 10구간 입력

for a in ran:
    range_reverse(ori,a)

print(ori)

2017/05/09 02:12

예강효빠

class cardreverse:
    def __init__(self):
        self.list = [i for i in range(1,21)]
        self.count = 0

    def reverse(self,a,b):
        self.count += 1
        if self.count > 10:
            self.count = 0
            self.list = [i for i in range(1,21)]
            print("10번 뒤집어서 처음으로 초기화 합니다.")
        else:
            print("count:",self.count)
            list_copy = self.list[(a-1):b]
            list_copy.reverse()
            self.list[(a-1):b] = list_copy
            print("list:",self.list)
asd = cardreverse()
asd.list
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
asd.reverse(6,9)
'''
count: 1
list: [1, 2, 3, 4, 5, 9, 8, 7, 6, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
'''
``````{.python}
asd.reverse(11,17)
'''
count: 2
list: [1, 2, 3, 4, 5, 9, 8, 7, 6, 10, 17, 16, 15, 14, 13, 12, 11, 18, 19, 20]
'''
asd.reverse(13,19)
'''
count: 3
list: [1, 2, 3, 4, 5, 9, 8, 7, 6, 10, 17, 16, 19, 18, 11, 12, 13, 14, 15, 20]
'''
asd.reverse(3,7)
'''
count: 4
list: [1, 2, 8, 9, 5, 4, 3, 7, 6, 10, 17, 16, 19, 18, 11, 12, 13, 14, 15, 20]
'''
``````{.python}
asd.reverse(5,13)
'''
count: 5
list: [1, 2, 8, 9, 19, 16, 17, 10, 6, 7, 3, 4, 5, 18, 11, 12, 13, 14, 15, 20]
'''
``````{.python}
asd.reverse(1,19)
'''
count: 6
list: [15, 14, 13, 12, 11, 18, 5, 4, 3, 7, 6, 10, 17, 16, 19, 9, 8, 2, 1, 20]
'''
``````{.python}
asd.reverse(11,20)
'''
count: 7
list: [15, 14, 13, 12, 11, 18, 5, 4, 3, 7, 20, 1, 2, 8, 9, 19, 16, 17, 10, 6]
'''
``````{.python}
asd.reverse(9,14)
'''
count: 8
list: [15, 14, 13, 12, 11, 18, 5, 4, 8, 2, 1, 20, 7, 3, 9, 19, 16, 17, 10, 6]
'''
``````{.python}
asd.reverse(12,20)
'''
count: 9
list: [15, 14, 13, 12, 11, 18, 5, 4, 8, 2, 1, 6, 10, 17, 16, 19, 9, 3, 7, 20]
'''
``````{.python}
asd.reverse(2,11)
'''
count: 10
list: [15, 1, 2, 8, 4, 5, 18, 11, 12, 13, 14, 6, 10, 17, 16, 19, 9, 3, 7, 20]
'''
``````{.python}
asd.reverse(5,19)
'''
10번 뒤집어서 처음으로 초기화 합니다.
'''
asd.reverse(14,19)
'''
count: 1
list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 19, 18, 17, 16, 15, 14, 20]
'''

2017/05/24 19:39

겨털에뽀뽀

javascript

var input =
`1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10`;

var cards = Array.from(Array(20), (v, i) => i + 1);
var data = input.split("\n").map(v => v.split(" "));

for (d of data) {
    cards = [
        ...cards.slice(0, d[0] - 1), 
        ...cards.slice(d[0] - 1, d[1]).reverse(),
        ...cards.slice(d[1])
    ];
}

console.log(cards);

2017/06/21 15:22

funnystyle

초보자 입니다...꾸벅....

List = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

change = []

def ChangeSort(first, last):
    InputFirst = first
    InputLast = last

    change = List[InputFirst-1:InputLast]
    del List[InputFirst-1:InputLast]
    change.sort()

    for i in change :
        List.insert(InputFirst-1,i)

    print(List)

ChangeSort(3,5)
ChangeSort(4,5)

2017/06/28 23:15

semipooh

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        LinkedList<Integer> list = new LinkedList<>();
        for(int i=1;i<=20;i++)
            list.add(i);

        for(int i=0;i<10;i++){//10번 반복
            System.out.println(i+1 + "번째 구간 a~b까지 (a<b)");
            System.out.print("a를 입력하시오 : ");
            int guGan1=sc.nextInt();
            System.out.print("b를 입력하시오 : ");
            int guGan2=sc.nextInt();
            int[] guGan = new int[guGan2-guGan1+1];//a~b까지 크기의 배열생성

            for(int j=0;j<guGan.length;j++)
                guGan[j]=list.get(guGan2-1-j);//list와 역순으로 배열요소 넣음

            for(int j=0;j<guGan.length;j++)
                list.set(guGan1+j-1, guGan[j]); //list에 필요한 index부분만 set으로 바꿈
        }
            System.out.println(list);
    }

2017/07/05 01:49

kihyun lee

#include <stdio.h>

int main(void)
{
    int i, j, start, end, a = 0, tmp;
    int cards[20] = {0,};
    for(i = 0; i < 20; i++)
        cards[i] = i + 1;
    for(i = 0; i < 10; i++) {
        scanf("%d %d", &start, &end);
        while(start + a <= end - a) {
            tmp = cards[end - a - 1];
            cards[end - a - 1] = cards[start + a - 1];
            cards[start + a - 1] = tmp;
            a++;
        }
        a = 0;
    }
    for(i = 0; i < 20; i++) {
        printf("%d ", cards[i]);
    }
}

2017/07/20 23:54

Dev Lithium

import java.util.*;

public class CardReverse {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] cards = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};

        for(int i=0;i<10;i++)
            cards = reverse(sc.nextInt()-1,sc.nextInt()-1,cards);

        for(int i=0;i<20;i++)
            System.out.print(cards[i] + " ");
    }

    public static int[] reverse(int start, int end, int[] cards) {
        int center = (start+end)/2;
        int tmp, i, j=end;

        for(i=start; i<=center; i++)
        {
            tmp = cards[i];
            cards[i] = cards[j];
            cards[j] = tmp;
            j--;
        }

        return cards;
    }
}

2017/07/31 11:32

곽철이

import random

input_list = []
numbers = list(range(1,21))

for i in range(10):
    input_list.append(sorted(random.sample(numbers,2)))

for a in input_list:
    numbers[(a[0]-1):a[1]] = reversed(numbers[a[0]-1:a[1]])




2017/08/10 10:50

이현우

card_list = list(range(1, 21))
def card_reverse() :
    global card_list
    x, y = int(input("시작 범위 : ")), int(input("끝 범위 : "))
    newlist = []

    for i in range(x-1, y) :
        newlist.append(card_list[i])
        card_list[i] = 0

    newlist.reverse()

    card_list[x-1:y] = newlist[0:]

for f in range(0, 10) :
    card_reverse()

print(card_list)

2017/08/14 14:11

다크엔젤

nums = list(range(21))
for line in data.split('\n'):
    p, q = map(int, line.split())
    while p < q:
        nums[p], nums[q] = nums[q], nums[p]

print(nums[1:])

2017/09/04 18:49

Noname

cards = list(range(1, 21))

for i in range(1, 11):
    a, b = map(int, input('%d. input a, b : ' %i).split())
    cards[a-1:b] = list(reversed(cards[a-1:b]))
    print(cards)

print(cards)

2017/11/23 13:20

songci

import java.util.Arrays;
import java.util.Scanner;

import static java.lang.System.in;

public class Reverse {

    static Integer[] cards = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};

    public static void main(String[] args) {
        Scanner sc = new Scanner(in);
        int[][] n = new int[10][2];

        for (int i = 0; i < 10; i++) {
            n[i][0] = sc.nextInt();
            n[i][1] = sc.nextInt();
        }

        for (int i = 0; i < 10; i++) {
            int s = n[i][0];
            int e = n[i][1];

            int l = e - s + 1;
            int t[] = new int[l];

            for (int j = s; j <= e; j++) {
                t[j - s] = cards[j - 1];
            }

            for (int j = s; j <= e; j++) {
                cards[j - 1] = t[e - j];
            }
        }

        System.out.println(Arrays.toString(cards));
    }
}

2017/12/04 16:57

떼디

def rev(cd, nl):
    tmp=cd
    for x,y in nl:
        tmp=tmp[:x-1]+list(reversed(tmp[x-1:y]))+tmp[y:]
    return(tmp)

cards=list(range(1,21))
nums=[]
while True:
    num=tuple(map(int, input().split()))
    if len(num)==2: nums.append(num)
    if len(nums)==10: break

print(rev(cards, nums))

2017/12/18 03:37

빗나감

파이썬 3.6

def cardreverse(inputdata):
    a,b = 0,0
    datatmp = []
    for i in inputdata:
        a,b = i[0],i[1]+10
        datatmp = data[(a-1):(b-1)]
        datatmp.reverse()
        data[(a-1):(b-1)] = datatmp
        datatmp = []
    print("result :",' '.join(data))

if __name__ == "__main__":
    data = [str(i) for i in range(1,21)]
    inputdata = [[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10]]
    print("data :",' '.join(data))
    cardreverse(inputdata)
  • 결과값
data : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
result : 10 11 12 13 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 20

2018/01/15 13:19

justbegin

card=[x for x in range(1,21)] cou=0 while True: r=input().split() a=int(r[0]) b=int(r[1]) f=card[a-1:b][::-1] card[a-1:b]=f cou=cou+1 if cou==10:break for i in card: print(i,end=' ')

2018/01/22 01:08

강상욱

card=[x for x in range(1,21)]
cou=0
while True:
    r=input().split()
    a=int(r[0])
    b=int(r[1])
    f=card[a-1:b][::-1]
    card[a-1:b]=f
    cou=cou+1
    if cou==10:break
for i in card:
    print(i,end=' ')

2018/01/22 01:10

강상욱

# 파이썬


def rs():
    cards = list(range(21))
    for m in range(5):
        start, end = map(int, input("정수 2개 입력: ").split())
        cards[start:end+1] = cards[end:start-1:-1]
    print(' '.join(str(s) for s in cards[1:]))


rs()

2018/01/31 08:57

olclocr

def shuffle(c):
    a = list(range(1, 21))
    for i in range(len(c)):
        a[c[i][0]-1:c[i][1]] = reversed(a[c[i][0]-1:c[i][1]])
    return a


c = list()
while 1:
    n = input()
    if n == '':
        break
    c.append(list(map(int, n.split(' '))))
print(shuffle(c))

2018/02/12 23:34

김동하

num_list=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

for k in range(10):
    num_range_list=input().split(' ')
    a=int(num_range_list[0])
    b=int(num_range_list[1])
    if a==b:
        continue
    num_list=num_list[:a-1]+num_list[b-1:a-2:-1]+num_list[b:]

ans=''
for num in num_list:
    ans+=str(num)+' '

print(ans)

2018/02/23 07:03

D B

자바입니다!!

package CodingDojang;

import java.util.*;

public class ReverseCards {

    private static int[] reverseCards(int[] cards, int[][] ranges) {
        int temp;

        for(int i = 0; i < ranges.length; i++) {
            int reverseCount = (ranges[i][1] - ranges[i][0] + 1) / 2;
            for(int j = 0; j < reverseCount; j++) {
                temp = cards[ranges[i][0] + j];
                cards[ranges[i][0] + j] = cards[ranges[i][1] - j];
                cards[ranges[i][1] - j] = temp;
            }
        }

        return cards;
    }

    public static void main(String args[]) {
        Scanner scn = new Scanner(System.in);
        int[][] ranges = new int[2][2];
        int[] cards = new int[20];

        for(int i = 0; i < cards.length; i++) {
            cards[i] = i + 1;
        }

        for(int i = 0; i < ranges.length; i++) {
            ranges[i][0] = Integer.parseInt(scn.next()) - 1;
            ranges[i][1] = Integer.parseInt(scn.next()) - 1;
        }

        cards = reverseCards(cards, ranges);

        for(int i = 0; i < cards.length; i++) {
            System.out.printf("%d ", cards[i]);
        }
    }
}

2018/03/02 12:15

sangw0804

파이썬으로 작성했습니다.

mylist=[ m for m in range(1,21)]
for n in range(10):
    a,b=map(int, input('').split(' '))
    tmplist=mylist[a-1:b]
    tmplist.reverse()
    mylist=mylist[:a-1]+tmplist+mylist[b:]

print(mylist)

2018/03/22 21:18

박종범

Swift입니다.

import Foundation

var numbers = Array(1...20)

func reverse(from: Int, to: Int) {
    var start = from - 1
    var end = to - 1
    while end > start {
        numbers.swapAt(start, end)
        start += 1
        end -= 1
    }
}

reverse(from: 10, to: 15)
reverse(from: 1, to: 5)
reverse(from: 3, to: 9)
reverse(from: 12, to: 18)

print(numbers)

2018/04/17 01:08

졸린하마

def card(mylist):
    initial = [i for i in range(1,21)]
    for i,j in mylist:
        initial = initial[:i-1] + list(reversed(initial[i-1:j])) + initial[j:]
    return initial


print(card([[1,1],[2,2],[3,3],[4,4]]))

2018/04/24 17:50

yijeong

card = list(range(1,21))

user_lst = []
while True:
    a = input()
    operands = a.split()
    start = int(operands[0])
    finish = int(operands[1])
    user_lst.append((start,finish))
    if len(user_lst) == 10:
        break

for pair in user_lst:
    idx1,idx2 = pair
    card[idx1:idx2+1] = card[idx1:idx2+1][::-1] 

print(card)


2018/05/07 13:15

최우성

def reversing(a, b, array):
    result = array
    result[a:b + 1].reverse()
    return result
fa = list(range(1, 21))
for run in range(10):
    ans = input()
    fa = reversing(int(ans.split()[0]), int(ans.split()[1]), fa)
print(fa)

10개의 구간을 차례대로 입력하면 구간의 값들이 역배치된 결과가 출력됩니다.

2018/05/23 23:35

myyh2357

Python

card = list(range(1, 21))
work = [[1,1], [2,2], [3,3], [4,4], [5,5], [6,6], [7, 7], [8,8],[9,9],[10,10]]
for i in range(len(work)):
    card = card[:work[i][0]-1]+card[work[i][0]-1:work[i][1]][::-1]+card[work[i][1]:]
print(card)

2018/06/11 15:22

Taesoo Kim

코딩연습

#include <stdio.h>
#include <stdlib.h>

#define MAX_DATA 20

void setNumber(int *arr) {
    while(1) {
        // scanf의 입력포맷과 다르다면
        // rewind함수를 통해 입력버퍼를 되감아 초기화 효과를 준다.
        if(scanf("%d %d",&arr[0], &arr[1])==0) {
            printf("INPUT ERROR!\n");
            rewind(stdin);
        }else if((arr[0] > 20 || arr[0] <1) || arr[1] > 20 || arr[1] <1)
            printf("입력값의 범위를 초과하였습니다!\n");
        else break;
    }
}

void ReverseCard(int *card) {
    int arr[2];
    int temp;
    for(int i=0; i<5; i++){
        // 무한루프를 통해 구간이 조건을 만족하면 break
        // 범위를 벗어났다면 setNumber함수 재호출
        while(1) {
            setNumber(arr);
            if(arr[0]<=arr[1]) break;
            printf("입력값의 범위를 초과하였습니다!\n");
        }
        // 구간에 대해서 카드 뒤집기
        for(int j=0; j<=(arr[1]-arr[0])/2; j++) {
            temp = card[arr[1]-1-j];
            card[arr[1]-1-j] = card[arr[0]-1+j];
            card[arr[0]-1+j] = temp;
        }
    }
}
int main() {
    int card[MAX_DATA];
    // 숫자 카드 셋팅 후 뒤집기
    for(int i=0; i<MAX_DATA; i++) card[i]=i+1;
    ReverseCard(card);
    // 숫자 카드 출력
    for(int i=0; i<20; i++) printf("%d ",card[i]);
    return 0;
}

2018/07/14 20:59

gudrhrehd123

x, y = [], [i for i in range(1,21)]
for _ in range(10): x.append(tuple(map(int,input().split())))
for i in x: y = y[:i[0]-1]+list(reversed(y[i[0]-1:i[1]]))+y[i[1]:]
for i in y: print(i, end=' ')

2018/07/18 08:12

Creator

seq = list()
i = 1
while i <= 20:
    seq.append(i)
    i = i + 1

class Range:
    def set_value(self, left, right):
        self.left = left
        self.right = right

lst_range = list()

i = 1
while i <= 10:
    a = Range()
    left = int(input("left"))
    right = int(input("right"))
    a.set_value(left, right)
    lst_range.append(a)
    i = i + 1
    print("done")

for a in lst_range:
    sub_seq = seq[(a.left - 1):a.right]
    sub_seq.reverse()
    left_seq = seq[:a.left-1]
    right_seq = seq[(a. right + 1):]
    seq = left_seq + sub_seq + right_seq

print(seq)

저는 python을 사용하였습니다. 이 문제를 풀면서 class를 다시 복습하게 되었네요~ 좋은 문제였습니다^^

2018/08/22 17:37

aa

C#

using System;
using System.Collections.Generic;
using System.Linq;

namespace CD091
{
    class Program
    {
        static void Main()
        {
            List<int> cards = Enumerable.Range(1, 20).ToList();
            for (int rpt = 1; rpt <= 10; rpt++)
            {
                int[] input = Console.ReadLine().Split(' ').Select(s => int.Parse(s)).ToArray();
                int idx = input[0] - 1;
                int count = input[1] - input[0] + 1;
                cards.Reverse(idx, count);
            }
            Console.WriteLine(string.Join(" ", cards));
        }
    }
}

2018/10/01 15:26

mohenjo

a <- readline
b <- readline

a <- as.numeric(a)
b <- as.numeric(b)

origin <- c(1:20)

reverse_card <- function(x, a, b){
  x[a:b] <- x[b:a]
  return(x)
}

reverse_card(origin, a, b)

2018/12/11 17:22

physche

lists=[i for i in range(1,21)]
n=0
while n<10: 
    a=int(input('첫번째 범위값'))
    b=int(input('두번째 범위값'))
    result=[]
    for j in range(lists[a]-1,lists[b]):
        result.append(j)
    result.sort(reverse=True)

    for i in range(len(result)):
        lists[(a-1)+i]=result[i]
    print(lists)
    n+=1

2018/12/20 16:50

S.H

def card(n,ask):
    cs = list(x for x in range(1,n+1))
    for x in range(ask):
        ask = list(map(int,input().split()))
        cs = cs[:ask[0]] + list(reversed(cs[ask[0]:ask[1]])) + (cs[ask[1]:] if ask[1] != len(cs)-1 else [])
    return cs

2019/01/10 09:40

김영성

cardList = list(range(1, 21, 1))

n = 0
while n < 10:
    ai, bi = input().split()
    ai = int(ai)
    bi = int(bi)

    # Exception step when ai is 1
    if (ai == 1):
        cardList[ai-1:bi] = cardList[bi-1::-1]
    else :
        cardList[ai-1:bi] = cardList[bi-1:ai-2:-1]
    # print(cardList)
    n += 1
print(" ".join([str(x) for x in cardList]))

2019/02/05 22:53

ChungGeol You

start = []
end =[]
card = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
for i in range(10):
    a, b = map(int, input().split())
    start.append(a)
    end.append(b)

def change(a, b, card):
    temp = []
    for i in range(b-1, a-2, -1):
        temp.append(card.pop(i))
    card[a-1:a-1] = temp

    return card

for i in range(10):
    change(start[i],end[i],card)

print(card)

2019/02/08 11:43

D.H.

namespace codingdojang__
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> Card = new List<int> { };
            for (int i = 1; i < 21; i++)
            {
                Card.Add(i);
            }
            Card = array(Card, 5, 10);
            Card = array(Card, 9, 11);
            Card = array(Card, 7, 14);
            Card = array(Card, 6, 18);
            Card = array(Card, 2, 19);
            Card = array(Card, 4, 17);
            Card = array(Card, 7, 12);
            Card = array(Card, 3, 13);
            Card = array(Card, 8, 20);
            Card = array(Card, 1, 11);
            //임의로 10개
            foreach(var i in Card)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
        }
        static List<int> array(List<int> card_array, int a, int b)
        {
            int ai = a - 1;
            int bi = b - 1;
            for (int i = 0; i < (b - a) / 2; i++)
            {
                int temp = card_array[ai];
                card_array[ai] = card_array[bi];
                card_array[bi] = temp;
                ai++;
                bi--;
            }
            return (card_array);
        }

    }
}

2019/03/31 13:59

bat

list0=list(range(1,21))
for i in range(10):
    listt=[]
    q,w=map(int,input().split())
    for j in range(20):
        if q-1<=j<=w-1:
            listt.append(list0[w-j+q-2])
        else:         
            listt.append(list0[j])
    list0=listt

print(list0)

2019/05/07 21:22

암살자까마귀

L = [str(i) for i in range(1, 21)]

def rev(a, b):
    global L
    assert 1 <= a <= b <= 20
    a -= 1
    b -= 1
    L = L[:a] + L[a:b+1][::-1] + L[b+1:]

for i in range(2):
    a, b = map(int, input().split())
    rev(a, b)

print(' '.join(L))

2019/05/12 16:01

messi

Python 3.7

card = list(map(str, range(1, 21)))
inp = [list(map(int, i.split(' '))) for i in input().split('\n')]
for i in inp:
    a, b = i
    card = card[:a-1] + list(reversed(card[a-1:b])) + card[b:]
print(' '.join(card))

Input

1 3
2 2
3 5
4 4
5 5
6 6
3 7
8 8
9 10
11 16

Output

3 2 7 6 1 4 5 8 10 9 16 15 14 13 12 11 17 18 19 20

2019/08/22 17:56

AY

dic={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20}
for j in range(1,11,1):
    a,b=input("구간입력: ").split(' ')
    a,b=(int(a),int(b))
    num=list(range(a,b+1))
    key=[]
    for i in num:
       key.append(dic[i])
    key.reverse()

    i=0
    while i<len(key):
        dic[num[i]]=key[i]
        i +=1
    key.clear()

print(dic.values())

2019/08/28 16:27

박재욱

import java.util.*;
public class 카드역배치 {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String[] 회차 = new String[10];
        for(int i=0; i<10; i++) {
            회차[i] = scan.nextLine();
        }
        ArrayList<Integer> cards = new ArrayList<Integer>();
        for(int i=1; i<21; i++) {
            cards.add(i);
        }
        int[] nums = new int[2];
        for(int i=0; i<10; i++) {
            String[] scope = 회차[i].split(" ");
            nums[0] = Integer.parseInt(scope[0]);
            nums[1] = Integer.parseInt(scope[1]);
            for(int j=0; j<nums[1]-nums[0]-2; j++) {
                Collections.swap(cards, nums[0]-1+j, nums[1]-1-j);
            }
        }
        System.out.println(cards);
    }
}

2019/11/25 17:58

big Ko

data = list(x for x in range(1,21))
for i in range(10):
    a,b = map(int, input().split())
    data = data[:a-1]+list(reversed(data[a-1:b]))+data[b:]


print(' '.join((map(str ,data))))

앞쪽 풀이를 참조(거의 모방)하였습니다.

2020/01/20 22:25

semipooh

k = list(range(1, 21))
print(k)
for c in range(10) :
    inp1, inp2 = map(int, input("INPUT : ").split())
    k = k[:inp1-1]+list(reversed(k[inp1-1:inp2]))+k[inp2:]
    print(k)

결과 확인하는데 헷갈려서 매번 입력할 때 마다 그 결과를 출력하도록 만들었습니다.

2020/01/22 14:49

GG

파이썬 3입니다.

card = list(range(1, 21))

for _ in range(10):
    r = tuple(map(int, input().split()))
    card = card[:r[0] - 1] + list(reversed(card[r[0] - 1:r[1]])) + card[r[1]:]

print(*card)

2020/01/31 19:17

우재용

from math import *

a=[]
for i in range (1,21):
   a.append(i)
print ('input=',a)

for i in range (0,10):
   b=str(input()).split(' ')
   m,n=int(b[0])-1,int(b[1])-1

   for j in range (0,ceil((n-m+1)/2)):
      temp=a[j+m]
      a[j+m]=a[(n-m)-j+m]
      a[(n-m)-j+m]=temp

print ('output=',a)

2020/04/14 15:20

Buckshot

<결과> input= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 1 1 2 2 4 4 5 5 6 6 7 7 8 8 9 9 10 10 output= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] input= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 1 10 5 9 4 15 2 7 4 9 10 18 14 20 3 9 10 17 3 9 output= [10, 12, 13, 1, 11, 9, 8, 15, 14, 5, 6, 19, 20, 7, 16, 17, 18, 4, 3, 2] - Buckshot, 2020/04/14 15:21
def exc(arr, r):
    for si, ei in r:
        temp = arr[si-1:ei]
        temp.reverse()
        arr[si-1:ei] = temp
    return arr

def main():
    arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    input = [[5, 10], [9, 13], [1, 2], [3, 4], [5, 6], [1, 2], [3, 4], [5, 6], [1, 20], [1, 20]]
    print(exc(arr, input))
if __name__ == '__main__':
    main()

2020/05/03 13:36

Hwaseong Nam

number = list(range(1,21))
print(number)

for i in range(0,10):
    low, high = int(input()), int(input())
    if low == high:
        continue
    else:
        number[low-1:high+1] = number[high-22:low-22:-1]
    print(number)
print(number)

2020/05/14 12:24

Money_Coding

card = [x for x in range(1, 21)]

for i in range(0, 10):
    step = input().split(" ")
    temp = card[int(step[0]) - 1:int(step[1])]
    temp.reverse()
    card[int(step[0]) - 1:int(step[1])] = temp
print(card)

2020/11/26 17:45

김우석

def card_reverse():

  card=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

  for i in range(10):

    reversenumber=input("")

    reverses=reversenumber.split(' ')

    bottom=int(reverses[0])

    top=int(reverses[1])

    while bottom<top:

      card[bottom],card[top]=card[top],card[bottom]

      bottom+=1

      top-=1

  return card

print(card_reverse())

2021/01/02 17:40

전준혁

nums = list(range(1, 21))
r = []
for _ in range(3):
    n = list(map(int, input().split()))
    for i in n:
        if i<1 or i>20:
            raise Exception('1<=a<=b<=20')
    r.append(n)

def switch(a, b):
    global nums
    l = nums[a-1:b]
    l.reverse()
    nums[a-1:b] = l
    return nums

for i in r:
    switch(i[0], i[1])

print(nums)

2021/02/17 15:33

Ha

def change_order(ai, bi, input_list):
    temp_list = []

    for i in range(bi-ai+1):
        temp_list.append(input_list[bi-1-i])
    # print(input_list, temp_list)

    for i in range(bi-ai+1):
        input_list[ai-1+i] = temp_list[i]
    # print(input_list)

    return input_list

card_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

# print(change_order(0, 2, [1,2,3,4]))
# print(change_order(1, 3, change_order(1, 3, [1,2,3,4])))

for i in range(1, 11):
    temp_range = i
    change_order(temp_range, temp_range, card_list)
    print('card changed : ', temp_range, temp_range, card_list)

2021/03/04 08:31

DSHIN

a = list(range(1,21))
count=0
while count<10:
    c=[]
    q = int(input("시작수를 입력하세요"))
    w = int(input("마지막수를 입력하세요"))
    if not 1<=q<=w<=20:
        print("1<=q<=w<=20 형식의 수를 넣으세요")
        break
    count+=1
    for i in a[q-1:w]:
        c.append(i)
    del a[q-1:w]
    for num in c:
        a.insert(q-1,num)
    print(a)

2021/03/05 23:43

fox.j

#codingdojing_reverse_card

#1 list 사용, mutable
cards = [i for i in range(1,21)]
print(cards)

cnt = 0

while cnt < 10:
    cnt += 1
    a, b = map(int,input(f"a b (wave: {cnt}): ").split())
    cards[a-1:b] = reversed(cards[a-1:b])
    print(cards)



2021/08/13 13:50

Jaeman Lee

list=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] def rev(a,b): insert = list.index(a) ch=[] for i in range(a,b+1): ch.append(list.pop(list.index(i))) ch.reverse() k = -1 for i in ch: k=k+1 list.insert(insert+k,i) return list

print(rev(5,12)) print(rev(15,19)) print(rev(3,13))

2021/10/13 16:43

슬로싱커

arr =[]
for k in range(1,21):
    arr.append(k)

interval = []
for i in range(10):
    while True:
        print(i+1,"회차",end="")
        a=int(input("시작 구간은?"))
        print(i+1,"회차",end="")
        b=int(input("끝 구간은?"))
        if a>=1 and a<=20 and b>=1 and b<=20 and a<=b:
            interval.append([a,b])
            break

def Turn (ineterval):
    for k in range(10):
        start = interval[k][0]
        end = interval[k][1]
        pop_arr =[]
        for i in range(end-start+1):
            pop_arr.append(arr[start-1])
            arr.pop(start-1)
        for j in pop_arr:
            arr.insert(start-1,j)

    return print("final",arr)

Turn(interval)

2022/01/01 00:28

양캠부부

card = [num for num in range(1,21)]

for i in range(0,10):
    _input = list(map(int,input().split()))
    count_rcard = _input[1]-_input[0]+1
    for j in range(0,int(count_rcard/2)): card[_input[0]-1+j],card[_input[1]-1-j] = card[_input[1]-1-j],card[_input[0]-1+j]

print(card)


2022/01/29 17:28

강태호

card = [i for i in range(1,21)]
reversecard = []
cardrange = list(range(1,int(input('섞을 횟수 : ')) + 1))

for i in range(0,len(cardrange)):
    cardrange[i] = input('\n').split(' ')

for i in cardrange:
    reversecard = card[int(i[0])-1 : int(i[1])]
    reversecard.reverse()
    card[int(i[0])-1 : int(i[1])] = reversecard

print(card)

2022/06/23 13:11

김시영

cards = range(1,21)
for i in range(10):
    a,b = map(int, raw_input().split())
    cards = cards[:a-1]+list(reversed(cards[a-1:b]))+cards[b:]
print ' '.join([str(x) for x in cards])

2023/04/20 18:54

장지훈

cards = [ i for i in range(1, 21)]
for _ in range(10):
    a, b = map(int, input('>>>').split())
    while a < b:
        cards[a-1], cards[b-1] = cards[b-1], cards[a-1]
        a, b = a+1, b-1
print(cards)

2023/11/23 15:33

insperChoi

목록으로