[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ์˜น์•Œ์ด(2)

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers โ”ƒ 2024. 3. 11. 10:52
๋ชฉ์ฐจ
  1. ๋ฌธ์ œ ์„ค๋ช…
  2. ๋ฌธ์ œ ํ’€์ด
  3. ๋‚˜์˜ ํ’€์ด
  4. ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด
  5. ์ค‘์š”ํ•œ ๊ฐœ๋…

 

 

 

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

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

โœ๐Ÿป Github

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

 


 

๋ฌธ์ œ ์„ค๋ช…

๋จธ์“ฑ์ด๋Š” ํƒœ์–ด๋‚œ ์ง€ 11๊ฐœ์›” ๋œ ์กฐ์นด๋ฅผ ๋Œ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์นด๋Š” ์•„์ง "aya", "ye", "woo", "ma" ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ๊ณผ ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ์„ ์กฐํ•ฉํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐœ์Œ๋ฐ–์— ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์—ฐ์†ํ•ด์„œ ๊ฐ™์€ ๋ฐœ์Œ์„ ํ•˜๋Š” ๊ฒƒ์„ ์–ด๋ ค์›Œํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฐฐ์—ด babbling์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋จธ์“ฑ์ด์˜ ์กฐ์นด๊ฐ€ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ

  • 1 โ‰ค babbling์˜ ๊ธธ์ด โ‰ค 100
  • 1 โ‰ค babbling[i]์˜ ๊ธธ์ด โ‰ค 30
  • ๋ฌธ์ž์—ด์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ

babbling result

babbling result
["aya", "yee", "u", "maa"] 1
["ayaye", "uuu", "yeye", "yemawoo", "ayaayaa"] 2

 

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ["aya", "yee", "u", "maa"]์—์„œ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ "aya"๋ฟ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ["ayaye", "uuu", "yeye", "yemawoo", "ayaayaa"]์—์„œ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ "aya" + "ye" = "ayaye", "ye" + "ma" + "woo" = "yemawoo"๋กœ 2๊ฐœ์ž…๋‹ˆ๋‹ค. "yeye"๋Š” ๊ฐ™์€ ๋ฐœ์Œ์ด ์—ฐ์†๋˜๋ฏ€๋กœ ๋ฐœ์Œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

 

์œ ์˜์‚ฌํ•ญ

  • ๋„ค ๊ฐ€์ง€๋ฅผ ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐœ์Œ ์ด์™ธ์—๋Š” ์–ด๋–ค ๋ฐœ์Œ๋„ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ทœ์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "woowo"๋Š” "woo"๋Š” ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ "wo"๋ฅผ ๋ฐœ์Œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ•  ์ˆ˜ ์—†๋Š” ๋ฐœ์Œ์ž…๋‹ˆ๋‹ค.

 


 

 

๋ฌธ์ œ ํ’€์ด

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


      
import Foundation
func solution(_ babbling:[String]) -> Int {
// ์•„๊ธฐ๊ฐ€ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜น์•Œ์ด์˜ ๊ฐœ์ˆ˜
var count = 0
// ์•„๊ธฐ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜น์•Œ์ด
let word = [ "aya", "ye", "woo", "ma"]
for bab in babbling {
var bab = bab
// ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ๊ธฐ์œ„ํ•œ ๋ฌธ์ž์—ด ์ €์žฅ
var pre: String = ""
while true {
if bab.count < 2 {
break
}else if bab.count == 2 {
let bab2 = String(bab.prefix(2))
if word.contains(bab2) && bab2 != pre {
pre = bab2
bab.removeFirst(2)
}else {
break
}
}else {
let bab2 = String(bab.prefix(2))
let bab3 = String(bab.prefix(3))
if word.contains(bab2) && bab2 != pre {
pre = bab2
bab.removeFirst(2)
}else if word.contains(bab3) && bab3 != pre {
pre = bab3
bab.removeFirst(3)
}else {
break
}
}
if bab == "" {
count += 1
break
}
}
}
return count
}

 

์šฐ์„ ์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€์— ์ง‘์ค‘ํ•ด์„œ ํ’€์—ˆ๋‹ค.

  1. ๋ฌธ์ž์—ด์ด ๋ฐ˜๋ณต์ด ๋˜๋ฉด ๋ฌธ์ž์—ด ๋น„๊ต ์ข…๋ฃŒ
  2. ๋ฌธ์ž์—ด ๊ฐœ์ˆ˜์— ๋”ฐ๋ฅธ ์ถœ๋ ฅ

 

์•„๊ธฐ๊ฐ€ ๋‚ผ ์ˆ˜ ์žˆ๋Š” babbling์ด 4๊ฐ€์ง€ ๋ฐ–์— ๋˜์ง€ ์•Š๊ณ  ์†Œ๋ฆฌ์˜ ๊ฐœ์ˆ˜๊ฐ€ 2๊ฐœ ์•„๋‹ˆ๋ฉด 3๊ฐœ์ด๋‹ค.

์ด๋ฅผ ์ด์šฉํ•ด babbling์˜ ์•ž์— 2๊ฐœ๋‚˜ 3๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ๊บผ๋‚ด์„œ ( prefix ์‚ฌ์šฉ )

์•„๊ธฐ๊ฐ€ ๋‚ผ ์ˆ˜ ์žˆ๋Š” babbling์— ํฌํ•จ์ด ๋˜๊ฑฐ๋‚˜ ์ค‘๋ณต์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋„๋ก ํ’€์—ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋ฌธ์ž์—ด์ด 3๊ฐœ ์ด์ƒ์ด๋ฉด, prefix(2), prefix(3)์„ ๋ชจ๋‘ ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ

๋ฌธ์ž์—ด์ด 2๊ฐœ ์ด์ƒ์ด๋ฉด, prefix(3)์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†์–ด์„œ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ž˜์„œ ๋”ฐ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ ค๋‹ค ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ์„ ํ–ˆ๋‹ค.

 

๋ฌธ์ž์—ด์ด 2๊ฐœ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ

๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 2๊ฐœ๋ผ๋ฉด prefix(2)๋กœ ๋น„๊ต

๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 3๊ฐœ๋ผ๋ฉด prefix(3)๊ณผ prefix(2) ๋‘˜๋‹ค ๋น„๊ต

 

์‹คํ–‰ํ•˜์˜€์„ ๋•Œ์˜ ์‹œ๊ฐ„์ด๋‹ค.


      
ํ…Œ์ŠคํŠธ 1 ใ€‰ ํ†ต๊ณผ (0.07ms, 16.4MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰ ํ†ต๊ณผ (0.06ms, 16.4MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰ ํ†ต๊ณผ (0.09ms, 15.8MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰ ํ†ต๊ณผ (0.06ms, 16MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰ ํ†ต๊ณผ (0.05ms, 16.2MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰ ํ†ต๊ณผ (0.05ms, 16.4MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰ ํ†ต๊ณผ (0.04ms, 16.5MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰ ํ†ต๊ณผ (0.07ms, 16.1MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰ ํ†ต๊ณผ (0.07ms, 16.3MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰ ํ†ต๊ณผ (0.05ms, 16.2MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰ ํ†ต๊ณผ (0.10ms, 16MB)
ํ…Œ์ŠคํŠธ 12 ใ€‰ ํ†ต๊ณผ (0.47ms, 16.2MB)
ํ…Œ์ŠคํŠธ 13 ใ€‰ ํ†ต๊ณผ (0.49ms, 16.2MB)
ํ…Œ์ŠคํŠธ 14 ใ€‰ ํ†ต๊ณผ (0.53ms, 16.1MB)
ํ…Œ์ŠคํŠธ 15 ใ€‰ ํ†ต๊ณผ (0.27ms, 16.4MB)
ํ…Œ์ŠคํŠธ 16 ใ€‰ ํ†ต๊ณผ (0.24ms, 16.2MB)
ํ…Œ์ŠคํŠธ 17 ใ€‰ ํ†ต๊ณผ (0.84ms, 16.5MB)
ํ…Œ์ŠคํŠธ 18 ใ€‰ ํ†ต๊ณผ (0.34ms, 16.2MB)
ํ…Œ์ŠคํŠธ 19 ใ€‰ ํ†ต๊ณผ (0.07ms, 16.1MB)
ํ…Œ์ŠคํŠธ 20 ใ€‰ ํ†ต๊ณผ (0.16ms, 16.4MB)

 

์—ฌ๋Ÿฌ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•˜๊ฒŒ ์งœ์—ฌ์ง„๊ฑฐ ๊ฐ™์•„ ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ๋ถˆ๊ฐ€๋Šฅ.. ใ…Ž

๊ทธ๋ž˜๋„ ์ตœ๋Œ€ํ•œ ์‹œ๊ฐ„์„ ๋œ ์“ฐ๊ธฐ ์œ„ํ•ด์„œ ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์„ ๋งŽ์ด ๋งŒ๋“ค์–ด๋‘์—ˆ๋‹ค.

 

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

์ฒซ๋ฒˆ์งธ,


      
import Foundation
func solution(_ babbling:[String]) -> Int {
var count: Int = 0
for element in babbling {
var str = String(element)
str = str.replacingOccurrences(of: "aya", with: "1")
str = str.replacingOccurrences(of: "ye", with: "2")
str = str.replacingOccurrences(of: "woo", with: "3")
str = str.replacingOccurrences(of: "ma", with: "4")
if Int(str) != nil && !str.contains("11") && !str.contains("22") && !str.contains("33") && !str.contains("44"){
count += 1
}
}
return count
}

 

์ด ๋ถ„์˜ ํ’€์ด๋Š” replacingOccurrences๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค.

๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ์ง€ ์•Š๊ณ  ํฌํ•จ์ด ๋˜์–ด์žˆ๋Š” ๋ฌธ์ž์—ด์„ ํ•œ๋ฒˆ์— ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด ์ข‹์€ ์ฝ”๋“œ์ธ๊ฒƒ ๊ฐ™๊ณ ,

' ๋ฌธ์ž์—ด ๋Œ€์ฒด๋Š” replacingOccurrences '์ธ๋ฐ ์™œ ์ƒ๊ฐํ•ด๋‚ด์ง€ ๋ชปํ–ˆ๋‚˜ ๋ผ๋Š” ์ž๊ธฐ ๋ฐ˜์„ฑ๋„ ํ•˜๊ฒŒ ๋œ๋‹ค.

์ด ๋ถ„์€ ๋ฐ˜๋ณต๋ฌธ์ž์—ด์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ if๋ฌธ์˜ ์กฐ๊ฑด์„ ๋‚˜์—ดํ•˜์˜€๋Š”๋ฐ, ์ด ๋ถ€๋ถ„๋„ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค.

 

๋‹ค๋งŒ ์‹œ๊ฐ„์„ ๋ดค์„ ๋•Œ,


      
ํ…Œ์ŠคํŠธ 1 ใ€‰ ํ†ต๊ณผ (0.45ms, 16.4MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰ ํ†ต๊ณผ (0.27ms, 16.4MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰ ํ†ต๊ณผ (0.42ms, 16.4MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰ ํ†ต๊ณผ (0.32ms, 16.3MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰ ํ†ต๊ณผ (0.27ms, 16.6MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰ ํ†ต๊ณผ (0.26ms, 16.3MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰ ํ†ต๊ณผ (0.38ms, 16.3MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰ ํ†ต๊ณผ (0.38ms, 16.5MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰ ํ†ต๊ณผ (0.48ms, 16.4MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰ ํ†ต๊ณผ (0.31ms, 16.3MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰ ํ†ต๊ณผ (0.57ms, 16.3MB)
ํ…Œ์ŠคํŠธ 12 ใ€‰ ํ†ต๊ณผ (1.90ms, 16.6MB)
ํ…Œ์ŠคํŠธ 13 ใ€‰ ํ†ต๊ณผ (2.08ms, 16.6MB)
ํ…Œ์ŠคํŠธ 14 ใ€‰ ํ†ต๊ณผ (1.79ms, 16.4MB)
ํ…Œ์ŠคํŠธ 15 ใ€‰ ํ†ต๊ณผ (3.33ms, 16.4MB)
ํ…Œ์ŠคํŠธ 16 ใ€‰ ํ†ต๊ณผ (2.13ms, 16.5MB)
ํ…Œ์ŠคํŠธ 17 ใ€‰ ํ†ต๊ณผ (2.69ms, 16.5MB)
ํ…Œ์ŠคํŠธ 18 ใ€‰ ํ†ต๊ณผ (3.69ms, 16.6MB)
ํ…Œ์ŠคํŠธ 19 ใ€‰ ํ†ต๊ณผ (0.82ms, 16.5MB)
ํ…Œ์ŠคํŠธ 20 ใ€‰ ํ†ต๊ณผ (1.52ms, 16.4MB)

 

replacingOccurences์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n)์ด๋ฏ€๋กœ

๋Œ€๋žต์ ์œผ๋กœ ๋ฐฐ์—ด ํ•˜๋‚˜๋‹น ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์ตœ๋Œ€๊ฐ€ O(n) * 4 ์ผ ๊ฒƒ์ด๋‹ค. ( n์€ ๋ฌธ์ž์—ด ๊ธธ์ด )

์—ฌ๊ธฐ์„œ babbling์˜ ๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜ ๋งŒํผ ๋ฐ˜๋ณต์ด ๋˜๋‹ˆ

  • 1 โ‰ค babbling์˜ ๊ธธ์ด โ‰ค 100
  • 1 โ‰ค babbling[i]์˜ ๊ธธ์ด โ‰ค 30

์ด ๋ถ€๋ถ„์„ ํ™•์ธํ–ˆ์„ ๋•Œ, ์ด๋ถ„์˜ ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์ตœ๋Œ€๊ฐ’์€ 100 * ( O(30) * 4 ) ์ด๋‹ค.

 

์ด ๋ฌธ์ œ์—์„œ๋Š” ๋ฌธ์ž์—ด์„ ๋Œ€์ฒดํ•˜์—ฌ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์ด ์‹œ๊ฐ„์ ์œผ๋กœ๋Š” ํšจ์œจ์ ์ด์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

 

 

๋‘ ๋ฒˆ์งธ,


      
import Foundation
func solution(_ babbling:[String]) -> Int {
let strArr = ["aya", "ye", "woo", "ma"]
var answer = 0
func checkWord(_ str: String) -> Bool {
var b = str
for s in strArr {
b = b.replacingOccurrences(of: s, with: "-")
if b.contains("--") { return false }
b = b.replacingOccurrences(of: "-", with: " ")
}
return b.replacingOccurrences(of: " ", with: "").isEmpty
}
for babble in babbling {
if checkWord(babble) {
answer += 1
}
}
return answer
}

 

์ด ๋ถ„์€ ์œ„์— ๋ถ„๊ณผ ๋™์ผํ•˜๊ฒŒ replacingOccurrences๋ฅผ ์‚ฌ์šฉํ•˜์˜€์ง€๋งŒ,

๋ฐ˜๋ณต๋ฌธ์„ ๋‘ ๋ฒˆ ๋Œ๋ฆฌ๋ฉด์„œ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด์ด ๋‚˜์˜ค๋Š” ์ฆ‰์‹œ ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

 

๋‹ค๋งŒ, ๋ฌธ์ž์—ด์ด ๋ฐ˜๋ณต์ด ๋œ๋‹ค๋ฉด ๋ฌธ์ž์—ด ์ข…๋ฃŒ๊ฐ€ ๋œ๋‹ค๋Š” ๊ฒŒ ์žˆ์œผ๋‚˜ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” ๊ณผ์ •์—์„œ -๋กœ ๋ฐ”๊พธ๊ณ  ๋ฐ˜๋ณต์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‹ค์‹œ โ€œ โ€œ๋กœ ๋ฐ”๊พธ๋Š” ๋ถ€๋ถ„์ด ํ•„์š”์น˜ ์•Š๊ฒŒ replacingOccurences์˜ ํ•จ์ˆ˜๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋‹ค. 


      
ํ…Œ์ŠคํŠธ 1 ใ€‰ ํ†ต๊ณผ (0.31ms, 16.5MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰ ํ†ต๊ณผ (0.37ms, 16.2MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰ ํ†ต๊ณผ (0.40ms, 16.4MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰ ํ†ต๊ณผ (0.25ms, 16.2MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰ ํ†ต๊ณผ (0.29ms, 16.3MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰ ํ†ต๊ณผ (0.27ms, 16.5MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰ ํ†ต๊ณผ (0.25ms, 16.5MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰ ํ†ต๊ณผ (0.28ms, 16.5MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰ ํ†ต๊ณผ (0.46ms, 16.5MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰ ํ†ต๊ณผ (0.48ms, 16.4MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰ ํ†ต๊ณผ (0.50ms, 16.4MB)
ํ…Œ์ŠคํŠธ 12 ใ€‰ ํ†ต๊ณผ (2.46ms, 16.5MB)
ํ…Œ์ŠคํŠธ 13 ใ€‰ ํ†ต๊ณผ (6.67ms, 16.4MB)
ํ…Œ์ŠคํŠธ 14 ใ€‰ ํ†ต๊ณผ (3.50ms, 16.6MB)
ํ…Œ์ŠคํŠธ 15 ใ€‰ ํ†ต๊ณผ (2.53ms, 16.4MB)
ํ…Œ์ŠคํŠธ 16 ใ€‰ ํ†ต๊ณผ (7.09ms, 16.6MB)
ํ…Œ์ŠคํŠธ 17 ใ€‰ ํ†ต๊ณผ (4.47ms, 16.6MB)
ํ…Œ์ŠคํŠธ 18 ใ€‰ ํ†ต๊ณผ (4.78ms, 16.5MB)
ํ…Œ์ŠคํŠธ 19 ใ€‰ ํ†ต๊ณผ (1.11ms, 16.3MB)
ํ…Œ์ŠคํŠธ 20 ใ€‰ ํ†ต๊ณผ (2.24ms, 16.4MB)

 

 

 

์„ธ ๋ฒˆ์งธ,


      
func solution(_ babbling: [String]) -> Int {
return babbling.filter { $0.range(of: "^(aya(?!aya)|ye(?!ye)|woo(?!woo)|ma(?!ma))+$", options: .regularExpression) != nil }.count
}

 

์‚ฌ์‹ค ์ด ๋ถ„๊บผ๋Š” ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ํ•˜๊ธฐ ์‹ซ์—ˆ์ง€๋งŒ, ์‹œ๊ฐ„์ด ๊ถ๊ธˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

( ์ € ์ฝ”๋“œ์— babbling ๋Œ€์‹ ์— OO์†Œ๋ฆฌ๋ผ๊ณ  ์š•์ด ์ ํ˜€์žˆ์—ˆ์Œ.. ์ธ์„ฑ.. )

 

regularExpression์ด๋ผ๋Š” ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘ธ์…จ๋‹ค.

์‚ฌ์‹ค ์‹œ๊ฐ„์ด ์ ค ์ ๊ฒŒ ๊ฑธ๋ฆด ์ค„ ์•Œ์•˜๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ๋‚˜์™€์„œ ๋†€๋žฌ๋‹ค.

 


      
ํ…Œ์ŠคํŠธ 1 ใ€‰ ํ†ต๊ณผ (1.76ms, 17.9MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰ ํ†ต๊ณผ (1.91ms, 17.8MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰ ํ†ต๊ณผ (1.95ms, 17.6MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰ ํ†ต๊ณผ (1.86ms, 17.8MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰ ํ†ต๊ณผ (1.82ms, 17.7MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰ ํ†ต๊ณผ (2.73ms, 17.9MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰ ํ†ต๊ณผ (1.85ms, 17.7MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰ ํ†ต๊ณผ (1.70ms, 17.7MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰ ํ†ต๊ณผ (1.76ms, 17.6MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰ ํ†ต๊ณผ (1.88ms, 17.8MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰ ํ†ต๊ณผ (1.87ms, 17.6MB)
ํ…Œ์ŠคํŠธ 12 ใ€‰ ํ†ต๊ณผ (2.41ms, 17.6MB)
ํ…Œ์ŠคํŠธ 13 ใ€‰ ํ†ต๊ณผ (2.42ms, 17.7MB)
ํ…Œ์ŠคํŠธ 14 ใ€‰ ํ†ต๊ณผ (2.46ms, 17.9MB)
ํ…Œ์ŠคํŠธ 15 ใ€‰ ํ†ต๊ณผ (3.64ms, 17.6MB)
ํ…Œ์ŠคํŠธ 16 ใ€‰ ํ†ต๊ณผ (2.39ms, 18MB)
ํ…Œ์ŠคํŠธ 17 ใ€‰ ํ†ต๊ณผ (2.54ms, 17.6MB)
ํ…Œ์ŠคํŠธ 18 ใ€‰ ํ†ต๊ณผ (3.59ms, 17.8MB)
ํ…Œ์ŠคํŠธ 19 ใ€‰ ํ†ต๊ณผ (1.95ms, 18.1MB)
ํ…Œ์ŠคํŠธ 20 ใ€‰ ํ†ต๊ณผ (2.22ms, 18.1MB)

 

๊ธธ์ด๊ฐ€ ์งง์€ ์ผ€์ด์Šค ๋“ค์—์„œ ์†๋„๊ฐ€ ๋งŽ์ด ๊ฑธ๋ฆฌ์—ˆ๊ณ , ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋Ÿฐ์ง€ ๋Œ€๋ถ€๋ถ„์˜ ์ผ€์ด์Šค์˜ ์‹œ๊ฐ„์ด ๋น„์Šทํ•˜๊ฒŒ ๊ฑธ๋ ธ๋‹ค.

 

์ •๊ทœํ‘œํ˜„์‹์˜ ํŒจํ„ด์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…๋„ ํ•˜๋‚˜ ์˜ฌ๋ ค์•ผ๊ฒ ๋‹ค.

 

 

์ค‘์š”ํ•œ ๊ฐœ๋…

  • replacingOccurences์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n)

 

 

 

 

 

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)
  1. ๋ฌธ์ œ ์„ค๋ช…
  2. ๋ฌธ์ œ ํ’€์ด
  3. ๋‚˜์˜ ํ’€์ด
  4. ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด
  5. ์ค‘์š”ํ•œ ๊ฐœ๋…
'๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ๋ฌธ์ž์—ด ๋‚˜๋ˆ„๊ธฐ
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ์ฒด์œก๋ณต
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ๋ง์น ํ•˜๊ธฐ
EarthSea
EarthSea
์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ์งธ์ž…๋‹ˆ๋‹ค ๐ŸŒฑ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๊ธ€์“ฐ๊ธฐ
EarthSea
EarthSea's Log๐ŸŒ
EarthSea

๊ณต์ง€์‚ฌํ•ญ

  • EarthSea's Introduce
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • โœ๏ธ TIL
    • ๐Ÿ“‘ Project
    • ๐Ÿ“’ Study
      • ๐ŸŒ React
      • ๐Ÿšฉ Swift
      • ๐Ÿ“ UIKit
      • ๐Ÿ–ค Git
      • ๐Ÿฉต Python
    • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Coding Test
      • โŒจ๏ธ Programmers
      • ๐Ÿ–Œ๏ธ BAEKJOON
    • ๐ŸŽ† SSAFY
    • ๐ŸŽ Apple
    • ๐Ÿท๏ธ Tistory
    • ์˜ค๋กฏ์ด ๋‚˜์˜ ์‹œ๊ฐ„
Total
Today
Yesterday
hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.2
EarthSea
[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ์˜น์•Œ์ด(2)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.