[BOJ] 1427: 소트인사이드

이슬비·2022년 3월 10일
0

Algorithm

목록 보기
9/110
post-thumbnail

크하핫 오늘은 뿌듯하다. 왜냐하면 한 번에 문제를 풀었기 때문이지 !!! 그도 당연할 것이 쉬운 문제였으니까 ^^...

1427: 소트인사이드

이번에는 두 가지 방법으로 풀어보았다. 음... 두 방법에는 크게 다를 게 없다!

1. 첫 번째 풀이: 성공

import sys

n = sys.stdin.readline()
n_list = list(n)

n_list.sort(reverse=True)
n_to_str = [str(i) for i in n_list]
print(''.join(n_to_str))

이제 입력이 나왔다 하면 자동으로 sys.stdin.readline()이 나오는 수준... 그래도 이때동안 정렬 공부하면서 깨달은 게 있는 거 같아 다행이다!

마지막에 문자열로 출력을 해야했어서 어떻게 할까하다가 리스트로 받고 문자열로 다시 합치자고 생각했다. 메모리나 시간이 조금 걱정되긴 했지만, 그래도 일단 가보자고 ~!


결과는 다행히 성공. 시간도 메모리도 합격선이었다...! 그래서 인터넷의 다른 분들의 풀이는 어떤가~ 하고 살펴보았고, 크게 다를 건 없었다. 그러다가 생각난 또 하나의 방법!

2. 두 번째 풀이: 성공

import sys

n = sys.stdin.readline()
n_list = list(n)
n_list.sort(reverse=True)

for i in n_list:
    print(i, end="")

바로 print(i, end="") 구문을 이용하는 방법이었다. 이 방법을 쓰면 굳이 문자열로 만들지 않아도 되기 때문에 메모리나 시간 측면에서 더 효율적이지 않을까 생각했지만, for문 때문에 마음에 걸리긴 했다.

결과는 대성공! 시간도 8ms 정도 빨랐다. 메모리는 똑같았다. 그래서 앞으로는 메모리 측면에서는

메모리: for 문 < 문자열 만들기

로 생각할 것이다.

오늘도 신기한 알고리즘의 세계 끄읕~!

profile
정말 알아?

0개의 댓글