⌨️ Language/swift

[Swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1 μΉ΄λ“œ λ­‰μΉ˜

hyebin (Helia) 2023. 3. 18. 11:04
λ°˜μ‘ν˜•
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1 λͺ¨μŒ

μΉ΄λ“œ λ­‰μΉ˜

문제 μ„€λͺ…

μ½”λ‹ˆλŠ” μ˜μ–΄ 단어가 적힌 μΉ΄λ“œ λ­‰μΉ˜ 두 개λ₯Ό μ„ λ¬Όλ‘œ λ°›μ•˜μŠ΅λ‹ˆλ‹€. μ½”λ‹ˆλŠ” λ‹€μŒκ³Ό 같은 κ·œμΉ™μœΌλ‘œ μΉ΄λ“œμ— 적힌 단어듀을 μ‚¬μš©ν•΄ μ›ν•˜λŠ” μˆœμ„œμ˜ 단어 배열을 λ§Œλ“€ 수 μžˆλŠ”μ§€ μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

  • μ›ν•˜λŠ” μΉ΄λ“œ λ­‰μΉ˜μ—μ„œ μΉ΄λ“œλ₯Ό μˆœμ„œλŒ€λ‘œ ν•œ μž₯μ”© μ‚¬μš©ν•©λ‹ˆλ‹€.
  • ν•œ λ²ˆ μ‚¬μš©ν•œ μΉ΄λ“œλŠ” λ‹€μ‹œ μ‚¬μš©ν•  μˆ˜ μ—†μŠ΅λ‹ˆλ‹€.
  • μΉ΄λ“œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  λ‹€μŒ μΉ΄λ“œλ‘œ λ„˜μ–΄κ°ˆ μˆ˜ μ—†μŠ΅λ‹ˆλ‹€.
  • 기쑴에 μ£Όμ–΄μ§„ μΉ΄λ“œ λ­‰μΉ˜μ˜ λ‹¨μ–΄ μˆœμ„œλŠ” λ°”κΏ€ μˆ˜ μ—†μŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ 첫 번째 μΉ΄λ“œ λ­‰μΉ˜μ— μˆœμ„œλŒ€λ‘œ ["i", "drink", "water"], 두 번째 μΉ΄λ“œ λ­‰μΉ˜μ— μˆœμ„œλŒ€λ‘œ ["want", "to"]κ°€ μ ν˜€μžˆμ„ λ•Œ ["i", "want", "to", "drink", "water"] μˆœμ„œμ˜ 단어 배열을 λ§Œλ“€λ €κ³  ν•œλ‹€λ©΄ 첫 번째 μΉ΄λ“œ λ­‰μΉ˜μ—μ„œ "i"λ₯Ό μ‚¬μš©ν•œ ν›„ 두 번째 μΉ΄λ“œ λ­‰μΉ˜μ—μ„œ "want"와 "to"λ₯Ό μ‚¬μš©ν•˜κ³  첫 번째 μΉ΄λ“œλ­‰μΉ˜μ— "drink"와 "water"λ₯Ό μ°¨λ‘€λŒ€λ‘œ μ‚¬μš©ν•˜λ©΄ μ›ν•˜λŠ” μˆœμ„œμ˜ 단어 배열을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

λ¬Έμžμ—΄λ‘œ 이루어진 λ°°μ—΄ cards1, cards2와 μ›ν•˜λŠ” 단어 λ°°μ—΄ goal이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, cards1κ³Ό cards2에 적힌 λ‹¨μ–΄λ“€λ‘œ goalλ₯Ό λ§Œλ“€ μžˆλ‹€λ©΄ "Yes"λ₯Ό, λ§Œλ“€ 수 μ—†λ‹€λ©΄ "No"λ₯Ό return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”.

μ œν•œ 사항

  • 1 ≤ cards1의 길이, cards2의 길이 ≤ 10
    • 1 ≤ cards1 [i]의 길이, cards2 [i]의 길이 ≤ 10
    • cards1κ³Ό cards2μ—λŠ” μ„œλ‘œ λ‹€λ₯Έ λ‹¨μ–΄λ§Œ μ‘΄μž¬ν•©λ‹ˆλ‹€.
  • 2 ≤ goal의 길이 ≤ cards1의 길이 + cards2의 길이
    • 1 ≤ goal [i]의 길이 ≤ 10
    • goal의 μ›μ†ŒλŠ” cards1κ³Ό cards2의 μ›μ†Œλ“€λ‘œλ§Œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
  • cards1, cards2, goal의 λ¬Έμžμ—΄λ“€μ€ λͺ¨λ‘ μ•ŒνŒŒλ²³ μ†Œλ¬Έμžλ‘œλ§Œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

 cards1 cards2 goal result
["i", "drink", "water"] ["want", "to"] ["i", "want", "to", "drink", "water"] "Yes"
["i", "water", "drink"] ["want", "to"] ["i", "want", "to", "drink", "water"] "No"

μž…μΆœλ ₯ 예 μ„€λͺ…

μž…μΆœλ ₯ 예 #1

  • λ³Έλ¬Έκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2

  • cards1μ—μ„œ "i"λ₯Ό μ‚¬μš©ν•˜κ³  cards2μ—μ„œ "want"와 "to"λ₯Ό μ‚¬μš©ν•˜μ—¬ "i want to"κΉŒμ§€λŠ” λ§Œλ“€ μˆ˜ μžˆμ§€λ§Œ "water"κ°€ "drink"보닀 λ¨Όμ € μ‚¬μš©λ˜μ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— ν•΄λ‹Ή λ¬Έμž₯을 μ™„μ„±μ‹œν‚¬ μˆ˜ μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ "No"λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

제좜

import Foundation

func solution(_ cards1:[String], _ cards2:[String], _ goal:[String]) -> String {
    var cards1 = cards1, cards2 = cards2

    for s in goal{
        if !cards1.isEmpty && cards1[0] == s {
            cards1.removeFirst()
        }else if !cards2.isEmpty && cards2[0] == s {
            cards2.removeFirst()
        }else{
            return "No"
        }
    }
    return "Yes"
}
cards1, cards2λ₯Ό λ³€μˆ˜λ‘œ λ³€ν™˜ν•œλ‹€.
goal의 μš”μ†Œλ₯Ό s에 μˆœμ„œλŒ€λ‘œ μ €μž₯ν•œλ‹€.
λ§Œμ•½ card1이 λΉ„μ–΄μžˆμ§€ μ•Šκ³ , card1의 첫 번째 μš”μ†Œκ°€ s와 κ°™λ‹€λ©΄ card1의 첫번째 μš”μ†Œλ₯Ό μ‚­μ œν•œλ‹€.
λ˜λŠ” card2κ°€ λΉ„μ–΄μžˆμ§€ μ•Šκ³ , card2의 첫번째 μš”μ†Œκ°€ s와 κ°™λ‹€λ©΄ card2의 첫번째 μš”μ†Œλ₯Ό μ‚­μ œν•œλ‹€.
두 경우 λͺ¨λ‘ ν•΄λ‹Ήν•˜μ§€ μ•ŠλŠ” λ‹€λ©΄, ν•΄λ‹Ή λ¬Έμž₯을 μ™„μ„±μ‹œν‚¬ 수 μ—†κΈ° λ•Œλ¬Έμ— "No"λ₯Ό λ°˜ν™˜ν•œλ‹€.

for문을 λ¬΄μ‚¬νžˆ μ’…λ£Œν–ˆλ‹€λ©΄ "Yes"λ₯Ό λ°˜ν™˜ν•œλ‹€. 
λ°˜μ‘ν˜•