데이터 코딩랩

백준 1427 파이썬 소트인사이드 본문

Algorithm/백준

백준 1427 파이썬 소트인사이드

researcher 틴틴 2025. 4. 16. 18:01

https://www.acmicpc.net/problem/1427

 

 

 

📄 실전 문제 접근 체크리스트


2초, 128MB

 

1단계: 문제 파악

☑️ 문제 요구사항 한 줄로 정리    

:  수가 주어지면, 각 자리의 수를 내림 차순 정렬

 

☑️ 예제 입력/출력 확인

: 입력  첫 째줄 : 정렬하고자 하는 수 N (N<=1,000,000,000 십억) 

: 출력 → 정수 출력, 내림 차순 정렬

 

추가)

📌 숫자 N을 문자열로 받아서 정렬하는 게 핵심 포인트!

 

 


   
2단계: 입력 범위 → 시간복잡도 판단
입력 크기 (N) 적정 알고리즘 복잡도

 

 

 

☑️ 입력 크기 체크 후 -> 내가 쓸 수 있는 알고리즘 선별

 주어질 숫자 N  (N<=1,000,000,000 십억) 

정렬 알고리즘 O(N log N) 

 

 

 

추가) 

N은 최대 10자리 → 문자 10개

정렬 복잡도는 O(N log N) = O(10 log 10) → 매우 작음

전혀 부담 없음 → sorted()로 충분

 



3단계: 알고리즘 유형 선택
☑️  정렬

추가) 문자열 → 리스트로 쪼개기 → 정렬 → 다시 문자열로 합치기


 


4단계: 자료구조 & 흐름 정리
☑️  어떤 자료구조를 쓸까?
    → 정렬
☑️  함수 나눌 필요 있는가?  

    → 없음
☑️ 조건 분기 많을까? 시뮬레이션 필요한가?  

  → 없음
☑️ 흐름 :  input, 내림차순 정렬, 출력

 

추가)

 

input() → 문자열로 받음

sorted() + reverse

''.join() → print()

 



5단계: 구현 전 체크 
☑️  입출력 방식은?

    → 입력 받을때 한 줄씩 받고, 출력도 한 줄씩

☑️ 예외 상황은 어떤 게 있을까? (빈 입력, 중복 등)

    → 수가 중복되어도 정렬에는 영향이 없는가?
☑️ 시간 초과 가능성은?
    → 없는듯

 

추가)

예외 없음 (입력은 항상 1개 이상 숫자)

중복 숫자도 문제 없음 → 단순 정렬이니까!

시간초과/메모리초과 절대 없음

 

 


6단계: 제출 전 체크리스트
☑️ 예제 출력 전부 통과했는가? 
☑️ 문제 조건 중 빠뜨린 거 없는가?
☑️ 반복문/조건문 이상한 부분 없는가?
☑️ 시간/메모리 초과 가능성 없나?

 

추가) 

✔️ 
✔️ 
✔️ 

 

내 코드

N = input()
N= sorted(N,reverse=True)
print(*N,sep='')

 

 

또 다른 코드(내 거는 아님)

N = input()
print(''.join(sorted(N, reverse=True)))