강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của yoodg10018201
yoodg10018201

câu hỏi đã được viết

Giới thiệu về giải bài toán bằng thuật toán Python (chuẩn bị cho bài kiểm tra viết mã)

3. Đảo ngược vị trí thẻ

카드 역배치

Viết

·

289

1

안녕하세요 강사님 강의보고 많이 배우고 있는 수강생입니다.

강의에선 구간을 역배치 할때 끝에서 끝부터 스왑하는식으로 했었는데요

제가 처음에 문제를 풀려고했을때 두가지 방법으로 해결하려했습니다.

1. 리스트 원하는 구간을 출력하고 싶을때 a[2:5]처럼 할수 있다는 부분을 이용하고 싶었고. 

2. sort(reverse=True)를 사용해보려고 했었거든요 

그러다 막혀서 강의를 보았고 선생님의 방법으로 해결할수 있었지만..

제가 생각한 방법으로도 실제로 구현을 할수 있는지 궁금합니다 ㅠ 제 머릿속에는 한계가 있는거 같아가지고요 ㅠ

python코테 준비 같이 해요!

Câu trả lời 2

1

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

리스트 슬라이스는 원본리스트는 그대로 둔채 새로운 리스트를 생성합니다. 

그래서 a[s:e+1].reverse() 를 한다고 해서 원본 a 리스트가 변경되지는 않습니다. 

이 방법으로는 곤란해 보입니다. 

0

row = list(range(1, 21))

for _ in range(10):

    a, b = list(map(int, input().split()))

    if a != 1:

        row[a-1:b] = row[b-1:a-2:-1]

    else:

        row[a-1:b] = row[b-1::-1]

print(*row)

제 풀이입니다 ! 늦었지만 일단 올려봅니다.

이거 정렬하면 안될거에요. 문제는 숫자들의 순서만 바꿔주는거라 정렬하면 크기별로 되버려서 안되더라구요.

정렬을 왜 해요? 저도 비슷하게 풀었는데 test케이스 다 통과했습니다. 혹시 몰라서 규현님껏도 돌려봤는데 모두 test 케이스 통과했습니당!

Hình ảnh hồ sơ của yoodg10018201
yoodg10018201

câu hỏi đã được viết

Đặt câu hỏi