코딩 테스트/Level 1
19. 문자열 내림차순으로 배치하기
컴닥
2019. 10. 17. 23:01
반응형
https://programmers.co.kr/learn/courses/30/lessons/12917
파이썬
간단하게 내장함수(BIF)들을 이용해서 풀었습니다.
def solution(s):
return ''.join(sorted(s, reverse=True))
파이썬을 시작했을 때 작성한 코드입니다. ㅜㅜ
def solution(s):
temp_list = []
for letter in s:
temp_list.append(letter)
temp_list.sort(reverse=True)
answer = ''
for each in temp_list:
answer += each
return answer
def solution(s):
temp_list = list(s) # list() 함수로 문자열을 바로 리스트로 바꿀 수 있다.
temp_list.sort(reverse=True)
answer = ''.join(temp_list) # 문자열에는 join 메서드를 사용할 수 있다.
return answer
sort, sorted의 차이: https://inma.tistory.com/137
def solution(s):
temp = list(s)
temp = sorted(temp, reverse=True)
answer = ''.join(temp)
return answer
자바스크립트
함수형으로 풀어보았습니다.
간략하게 작성하기 위해 3항 연산자도 사용했습니다.
function solution(s) {
return s.split('').sort((a, b) => (a <= b) ? 1 : -1).join('');
}
소트 부분이 어렵다면 이런 풀이도 가능하겠죠?
O(n)이 추가 되는 단점은 있습니다만 가독성은 좋습니다.
function solution(s) {
return s.split('').sort().reverse().join('');
}
자바
특별히 설명할 게 없죠? 문자열을 배열로, 배열을 역정렬하고, 마지막으로 배열을 조인.
import java.util.*;
class Solution {
public String solution(String s) {
String[] arr = s.split("");
Arrays.sort(arr, Collections.reverseOrder());
return String.join("", arr);
}
}
코틀린
class Solution {
fun solution(s: String): String {
return s.split("").sorted().reversed().joinToString("")
}
}
고
import (
"sort"
"strings"
)
func solution(s string) string {
text := strings.Split(s, "")
sort.Slice(text, func(i, j int) bool {
return text[i] > text[j]
})
return strings.Join(text, "")
}
import "sort"
func solution(s string) string {
text := []byte(s)
sort.Slice(text, func(i, j int) bool { return text[i] > text[j] })
return string(text)
}
C#
using System;
public class Solution
{
public string solution(string s)
{
char[] c = s.ToCharArray();
Array.Sort(c);
Array.Reverse(c);
return string.Concat(c);
}
}
Sort와 Reverse를 한번에 처리하는 예를 다른 언어에서 많이 보셨을 겁니다.
한 줄 줄였습니다. --; 코뽐에선 한 줄 줄이는 게 나름 자존심이죠.
using System;
public class Solution
{
public string solution(string s)
{
char[] c = s.ToCharArray();
Array.Sort<char>(c, new Comparison<char>((c1, c2) => c2.CompareTo(c1)));
return string.Concat(c);
}
}
그래서 한줄로 ....
using System.Linq;
public class Solution
{
public string solution(string s) => string.Concat(s.ToCharArray().OrderByDescending(c => c).ToArray());
}
반응형