티스토리 뷰
728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/17686
파일명은 크게 HEAD, NUMBER, TAIL의 세 부분으로 구성
파일명 | HEAD | NUMBER | TAIL |
---|---|---|---|
foo9.txt |
foo |
9 |
.txt |
foo010bar020.zip |
foo |
010 |
bar020.zip |
F-15 |
F- |
15 |
(빈 문자열) |
정렬순서
- 파일명은 우선 HEAD 부분을 기준으로 사전 순으로 정렬한다. 이때, 문자열 비교 시 대소문자 구분을 하지 않는다.
MUZI
와muzi
,MuZi
는 정렬 시에 같은 순서로 취급된다. - 파일명의 HEAD 부분이 대소문자 차이 외에는 같을 경우, NUMBER의 숫자 순으로 정렬한다. 9 < 10 < 0011 < 012 < 13 < 014 순으로 정렬된다. 숫자 앞의 0은 무시되며, 012와 12는 정렬 시에 같은 같은 값으로 처리된다.
- 두 파일의 HEAD 부분과, NUMBER의 숫자도 같을 경우, 원래 입력에 주어진 순서를 유지한다.
MUZI01.zip
과muzi1.png
가 입력으로 들어오면, 정렬 후에도 입력 시 주어진 두 파일의 순서가 바뀌어서는 안 된다.
주의할점
- 파일명은 100 글자 이내로, 영문 대소문자, 숫자, 공백(" ), 마침표(.), 빼기 부호(-")만으로 이루어져 있다.
- HEAD는 숫자가 아닌 문자로 이루어져 있으며, 최소한 한 글자 이상이다.
- NUMBER는 한 글자에서 최대 다섯 글자 사이의 연속된 숫자로 이루어져 있으며, 앞쪽에 0이 올 수 있다.
0
부터99999
사이의 숫자로,00000
이나0101
등도 가능하다. - TAIL은 그 나머지 부분으로, 여기에는 숫자가 다시 나타날 수도 있으며, 아무 글자도 없을 수 있다.
입력값
files ~ 파일명 리스트.
- 영문 대소문자, 숫자, 공백(" ), 마침표(.), 빼기 부호(-")로 구성
출력
정렬된 배열
접근방법
구분이 필요하다.
head는 문자만
number는 최대 5글자의 연속된숫자.
tail는 나머지부분. nil값일 수도 있음.
number가 연속된 숫자이니, head 마지막부터 5칸 for문 돌면서 숫자가 끈키는 순간 or 5칸 이후부터 tail로 보면될것 같다.
정렬은 기본 내장함수인 sort를 사용하되, 클로저로 규칙을 적용해주면 된다. return값이 true면 값이 바뀌고, false면 바꾸지 않는다.
head부분에서 대소문자 구분을 하지않기위해 소문자로 변환 후 같지 않을경우 정렬을 하도록 작성했는데.. return 값에선 lowercased()를 안써줘서 몇개의 테스트케이스가 계속 실패가 떳다 =_=.. 틀린게 없다고 생각될땐 문제를 다시 읽어보고 직접 테스트케이스를 만들어서 넣어보자..
코드
더 깔끔한 코드..
728x90
'개발 블로그 > 알고리즘' 카테고리의 다른 글
[Swift] 백준 - 신입 사원 (0) | 2020.11.04 |
---|---|
[Swift] 프로그래머스 - n진수 게임 (0) | 2020.11.03 |
[Swift] 프로그래머스 - 압축 (0) | 2020.11.02 |
[Swift] 프로그래머스 - 방금그곡 (0) | 2020.11.01 |
[Swift] 프로그래머스 - 후보키 (0) | 2020.11.01 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- BaseTableViewController
- UIModalPresentationStyle
- RxDataSource
- 아키택처
- BaseViewController
- 위젯
- 알고리즘
- 카카오 블라인드2018
- ios
- Github Search
- Swift
- 카카오 블라인드 2018
- Widget
- 프로그래머스 오픈채팅방
- 백준 신입사원
- RxSwift
- 카카오블라인드2018
- TransitionStyle
- ReactorKit
- 프로그래머스 추석트래픽
- 프로그래머스 캐시
- 자기PR
- 1차 뉴스 클러스터링
- Level 3
- presentStyle
- VIPER 패턴
- 백준 1946
- today extension
- Stack
- 괄호연산
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함