250x250
반응형
05-11 19:27
Today
Total
«   2024/05   »
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
Notice
Recent Posts
Recent Comments
Link
Archives
관리 메뉴

Bill Kim's Life...

[Swift] 프로그래머스 연습 문제(Level 1) : 문자열 내림차순으로 배치하기 본문

CS(컴퓨터 과학)/Coding Test

[Swift] 프로그래머스 연습 문제(Level 1) : 문자열 내림차순으로 배치하기

billnjoyce 2021. 1. 19. 18:05
728x90
반응형
실제 코딩테스트의 문제를 통하여 알고리즘 분석과 코딩 능력을 향상시킵니다.

 

 

#. 구독 대상

  • 기본 알고리즘을 코딩 테스트 문제를 통하여 학습하고 싶으신 분
  • 취업 및 이직을 준비하고 계신 개발자
  • Swift를 통하여 코딩 테스트 문제를 살펴보고 이해를 하고 싶으신 분
  • 코딩 테스트에 대한 거부감을 없애기 위하여 기초부터 하나씩 공부해보고 싶으신 분
  • 기타 알고리즘과 문제 해결 능력에 대해서 관심이 있는 모든 개발자분
참고 사항

본 코딩 테스트 문제에 대한 설명 및 해결 방안은 최적의 답이 아닐 수 있습니다.

본 강의에서 지향하는 목표는 바로 특정 문제에 대한 최적의 해결 방법을 찾기보다는 특정한 문제에 대해서 충분히 이해할 수 있고 다양한 방법을 통하여 해결하는 방법을 찾고 향상시키는데 그 목적이 있습니다.

좀 더 좋은 알고리즘 및 코드가 있으시다면 언제든지 본 게시물의 댓글을 통해서 제시해주시면 감사하겠습니다.

 

 

 


 

 

 

코딩 테스트 문제

 

먼저 오늘 살펴볼 문제에 대해서 먼저 살펴보겠습니다.

 

programmers.co.kr/learn/courses/30/lessons/12917

 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로

programmers.co.kr

 

 

 


 

 

 

문제 설명

 

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

 

 

 

 


 

 

 

제한 조건

 

  • str은 길이 1 이상인 문자열입니다.

 

 

 

 

 

 

 


 

 

 

 

입출력 예

s return
Zbcdefg gfedcbZ

 

 

 

 


 

 

문제 분석

 

오늘 문제는 문자열 소팅 문제입니다. 길이가 1 이상인 문자열이 입력되면 문자를 큰 것부터 작은 순으로 정렬을 합니다. 대소문자는 구분하며 대문자는 소문자보다 작은 것으로 간주합니다.

 

 

 

 


 

 

 

알고리즘

 

위의 내용을 기반으로 하여 본 문제를 해결하기 위한 알고리즘을 살펴보면 아래와 같습니다.

 

  • 입력된 문자를 Swift의 내장 sort를 활용합니다.
  • Swift 내장 sort 함수는 대문자가 자동으로 소문자보다 작은 것으로 간주됩니다.

 

 

 

 


 

 

 

코드 설명

 

그렇다면 위의 알고리즘에 대해서 하나씩 살펴보면서 코드로 작성을 해보도록 하겠습니다.

 

 

  • 입력된 문자를 Swift의 내장 sort 함수를 활용합니다.
  • Swift 내장 sort 함수는 대문자가 자동으로 소문자보다 작은 것으로 간주되어 처리됩니다.

 

 

 

return String(s.sorted { $0 > $1 })

 

 

 

위의 코드들을 모두 조합하여 최종 코드를 완성하면 아래와 같습니다.

 

 

최종 코드

func solution(_ s:String) -> String {
    return String(s.sorted { $0 > $1 })
}

 

 

 

 


 

 

 

이상으로 오늘 제시한 문제에 대해서 분석 및 코드를 작성해 보았습니다.

 

사실 실제 기업에서의 코딩 테스트는 아무래도 Swift 자체 sort 함수 사용보다는 직접 소팅 알고리즘을 작성하는 것을 더 높은 점수를 줄 수는 있습니다.

 

다만 본 글에서는 Swift의 sort 함수로도 오늘의 문제를 아주 빠르고 쉽게 풀 수 있다는 점을 보여주고 싶어서 기본 내장 sort를 사용하여 문제를 푼 점을 이해바랍니다. 

 

그럼 오늘 하루도 좋은 하루되세요.

 

 

 

감사합니다.

 

 

 

 


[참고 자료(References)]

 

[1] 프로그래머스 - 문자열 내 마음대로 정렬하기 : programmers.co.kr/learn/courses/30/lessons/12912programmers.co.kr/learn/courses/30/lessons/12915

728x90
반응형
Comments