728x90
문제주소 : https://www.hackerrank.com/challenges/insertionsort2/problem
난이도 : easy
성공률 : 97.21%
문제 : 주어진 배열에서 순차적으로 열의 개수를 늘려가며 정렬 후 출력 정렬 후 출력 반복하라
풀이
1. 1번 인덱스와 0번 인덱스 비교 후 큰값을 오른쪽 하여 출력
2. 2번 인덱스와 1번인덱스 비교 후 1번이 크면 값 스왑 후 0번과 비교, 작으면 출력
이런식으로 뒤에서부터 앞으로 값 비교하여 스왑작업
답안
#!/bin/python3
import math
import os
import random
import re
import sys
def printList(arr):
for i in range(0, len(arr)):
print(arr[i], end='')
print(' ', end='')
print('')
def insertionSort2(n, arr):
for i in range(1, n):
nTempCnt = i+1
for j in range(1, nTempCnt):
if arr[nTempCnt-j] < arr[nTempCnt-j-1]:
nSwap = arr[nTempCnt-j]
arr[nTempCnt-j] = arr[nTempCnt-j-1]
arr[nTempCnt-j-1] = nSwap
else:
break
printList(arr)
if __name__ == '__main__':
n = int(input())
arr = list(map(int, input().rstrip().split()))
insertionSort2(n, arr)
느낀점
더보기
독해하는데 10분 문제푸는데 5분..
쉬운문제들은 번역기 안돌리고 풀어보려고 하니 오히려 영어 스트레스가 더 받는다
처음엔 문제 이해하고 sort 함수 돌려서 값 이어붙이기 해서 출력할려고 했는데
알고리즘을 어떻게 짜라고 문제에 제시가 되어있었다
그대로 짜기만 하니 되었고 디버깅도 없이 그냥 코드짜고 실행해서 값 넣어보고 딱 한방에 끝냄
728x90
'운동하는 개발자 > 알고리즘, 코딩테스트' 카테고리의 다른 글
programmers [level2] 프린터 /알고리즘 프로그래머스 (0) | 2021.03.25 |
---|---|
programmers [level2] 다리를 지나는 트럭 /알고리즘 프로그래머스 (0) | 2021.03.24 |
HackerRank [Sorting] Insertion Sort - Part 1 /알고리즘 해커랭크 (0) | 2021.03.11 |
HackerRank [Implementation] Extra Long Factorials /알고리즘 해커랭크 (0) | 2021.03.11 |
HackerRank [Implementation] Forming a Magic Square /알고리즘 해커랭크 (0) | 2021.03.01 |