-
19. 문자열 내림차순으로 배치하기코딩 테스트/Level 1 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()); }
반응형