코드시그널 아케이드 파이썬 07 번 풀이
인트로의 지옥을 벗어났구요.. 그래프를 풀려면, 자바같은 멍가튼 언어는 별로 더라구요.
자 파이썬을 시작해보겠습니다. 조금 배워보니 왜 파이썬 파이썬 하는지 알겠더군요.
약간 자바보다는 안정감이 떨어지지만(?) 개인적으로
유연하고 간편하다? 라는 느낌을 받았습니다. 자 시작해볼까요!!
문제 해설
이 문제는
주어진 array를 오름차순에 맞게 재배열해달라는 문제입니다.
해결
def simpleSort(arr):
n = len(arr)
for i in range(n):
j = 0
stop = n - i
while j < stop - 1:
if arr[j] > arr[j + 1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
j += 1
return arr
일단 배열의 길이를 n으로 선언하고 단순히 for문으로 돌렸습니다.
여기서 특이하게도,
while문이 들어가서 배열의 각 요소들을 바꿔주는 문법이 신기합니다.
자바에서는 안되지만, 파이썬에서는
arr[j], arr[j+1] = arr[j+1], arr[j]
이러한 구현이 가능합니다. 말그대로 0번째, 1번째 요소를 1번째, 0번째 즉 앞뒤를 바꿔준다고 하는것입니다.
조건은 당연히 앞에가 뒤보다 큰경우, 작은 경우 이런식으로 주어졌겠지요.
좀 길게 풀이한 것 같지만 나름 신기했습니다.
sort()같은 함수를 사용할 수도 있지만, 이렇게 하면, 중복값도 생략안하고 다 순서대로 나오게 하는듯 합니다.
그런 배열에 대한 파이썬의 특이성을 보여준 문제라고 생각되네요.
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
#08_Code Signal Arcade Python :: Base Conversion (0) | 2020.07.29 |
---|---|
#06_Code Signal Arcade Python :: Modulus (0) | 2020.06.15 |
#05_Code Signal Arcade Python :: Count Bits (0) | 2020.06.11 |