[HackerRank] Zig Zag Sequence (Python3)

Sage·2023년 5월 4일
0

코테 풀이

목록 보기
5/5

[HackerRank] Zig Zag Sequence - Problem

Q) 정수 배열 → Zig Zag Sequence 찾기

  • k = (원소개수 + 1) / 2
  • 앞의 k개 원소: 오름차순 정렬
  • 뒤의 k개 원소: 내림차순 정렬


풀이

def findZigZagSequence(a, n):
    a.sort()
    mid = int(n/2) #modified
    a[mid], a[n-1] = a[n-1], a[mid]

    st = mid + 1
    ed = n - 2 #modified
    while(st <= ed):
        a[st], a[ed] = a[ed], a[st]
        st = st + 1
        ed = ed - 1 #modified

    for i in range (n):
        if i == n-1:
            print(a[i])
        else:
            print(a[i], end = ' ')
    return
  1. 인덱스에 맞게 mid 수정
  • mid = int((n+1)/2) → mid = int(n/2)
  • Examples: 2, 3, 5, 1, 4
    - (before) mid = 3 → (after) mid = 2
  1. ed의 초기 값 수정
  • ed = n-1 → ed = n-2
  • Examples: ([1 2 3 4 5 6 7] →) [1, 2, 3, 7, 5, 6, 4]
    - (before) ed = 4 → (after) ed = 6
  1. ed의 값이 좌측으로 이동하도록 수정
  • ed = ed + 1 → ed = ed - 1
  • Examples: [1, 2, 3, 7, 5, 6, 4]
    - (before) ed = 6 → ed = 4
    - (after) ed = 6 → ed = 5

실행 결과

profile
Wanna know everything I need

0개의 댓글