๐Ÿง‘๐Ÿป‍๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers

[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ

EarthSea 2024. 3. 22. 10:25

 

 

 

๐Ÿ„ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด

โœ๐Ÿป Github

๋ฌธ์ œ ํ’€์ด github ๋งํฌ

 

 

๋ฌธ์ œ ์„ค๋ช…

JadenCase๋ž€ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ์˜ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋‹จ, ์ฒซ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹ ๋•Œ์—๋Š” ์ด์–ด์ง€๋Š” ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, s๋ฅผ JadenCase๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ ์กฐ๊ฑด

  • s๋Š” ๊ธธ์ด 1 ์ด์ƒ 200 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • s๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ ์ˆซ์ž, ๊ณต๋ฐฑ๋ฌธ์ž(" ")๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ˆซ์ž๋Š” ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋กœ๋งŒ ๋‚˜์˜ต๋‹ˆ๋‹ค.
    • ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๋Š” ์—†์Šต๋‹ˆ๋‹ค.
    • ๊ณต๋ฐฑ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ

s return
"3people unFollowed me" "3people Unfollowed Me"
"for the last week" "For The Last Week"

 

 

 

๋ฌธ์ œ ํ’€์ด

๋‚˜์˜ ํ’€์ด

func solution(_ s:String) -> String {
    s.replacingOccurrences(of: " ", with: " -")
     .split(separator: "-")
     .map{ $0.prefix(1).uppercased() + $0.suffix($0.count-1).lowercased()}
     .reduce("", +)
}

 

“๊ณต๋ฐฑ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค” ๋ผ๋Š” ๋ฌธ์ œ๋Š” ์ €๋ฒˆ์—๋„ ํ’€์—ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ.. ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ๋ฌด์ง„์žฅ ๋– ์˜ค๋ฅด์ง€ ์•Š์•˜๋‹ค. if ๋ฌธ์„ ์จ๋„ ๋˜์ง€๋งŒ, ๊น”๋”ํ•˜๊ฒŒ ํ•œ ํ์— ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.

 

ํ•œ์ฐธ์„ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๋– ์˜ค๋ฅธ ๋ฐฉ๋ฒ•์€ ๋นˆ ๋ฐฐ์—ด๋กœ “ “์„ split ํ•จ์ˆ˜๋กœ ์—†์• ๊ธฐ ๋•Œ๋ฌธ์— ์•„์˜ˆ ๋นˆ ๋ฌธ์ž์—ด์ธ ๊ฒฝ์šฐ์—” ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ฝ”๋“œ๋ผ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ๋‹ค. ๊ทธ๋ž˜์„œ ๋นˆ๋ฌธ์ž์—ด " " ๋ฅผ ๋ฌธ์ž์—ด ๋ณ€ํ™˜ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด “ - “๋กœ ๋ฐ”๊พธ์–ด์ฃผ์—ˆ๋‹ค. ( ์ € replacingOccurrences ๋ฌธ๋ฒ•์€ ์จ๋„ ์จ๋„ ์™ธ์›Œ์ง€์ง€ ์•Š๋Š”๋ฐ ๋‚˜๋งŒ ๊ทธ๋ž˜? ๋งจ๋‚  ์ฒ ์ž ํ‹€๋ฆฌ๊ณ , ๋‹ค์‹œ ์“ฐ๊ณ , of๋ž‘ in ์ด์—ˆ๋Š”์ง€.. of๋ž‘ to ์˜€๋Š”์ง€.. ๊ธฐ์–ต์ด ์•ˆ๋‚˜!1 ) ์•”ํŠผ ์ฒ˜์Œ์—” “ - “ ๋ฅผ ๋„ฃ๊ณ , “-” ๋กœ ๋ถ„๋ฆฌํ–ˆ๋Š”๋ฐ ์ถœ๋ ฅํ•ด๋ณด๋‹ˆ ๊ตณ์ด “ “ ๋นˆ ๋ฌธ์ž์—ด์ด ์•ž๋’ค๋กœ ๋‘ ๋ฒˆ ๋“ค์–ด๊ฐˆ ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค. ํ•œ ํ์— ๋๋‚ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ์‹น ์Šค์ณ์ง€๋‚˜๊ฐ! ๊ทธ๋ž˜์„œ “ -“ ๋กœ ๋ถ„๋ฆฌ ์‹œํ‚จ ๋‹ค์Œ map ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ฒซ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊พธ์–ด์ฃผ๊ณ , ๋‚˜๋จธ์ง€๋Š” reduce ๋ฅผ ํ•ด์คฌ๋‹ค.

 

 

โญ๏ธ replacingOccurrences(of: , with: ) ๋ฌธ๋ฒ• ์ฒ ์ž ๊นŒ๋จน์ง€ ์•Š๊ธฐ..

 

โญ๏ธ split ๊ณผ components ์˜ ์ฐจ์ด๋Š” ๊ณต๋ฐฑ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ผ ๋ณดํ†ต split ์ด ๋” ๋น ๋ฆ„

 

โญ๏ธ ๊ณต๋ฐฑ ๋ฌธ์ž์—ด์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ฉด์„œ ๋‹จ์–ด๋กœ ๋ถ„๋ฆฌ์‹œํ‚ค๊ณ  ์‹ถ์„ ๋• “ -”๋ฅผ ๋„ฃ๊ธฐ