νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ¨μ
ν€ν¨λ λλ₯΄κΈ°
λ¬Έμ μ€λͺ
μ€λ§νΈν° μ ν ν€ν¨λμ κ° μΉΈμ λ€μκ³Ό κ°μ΄ μ«μλ€μ΄ μ ν μμ΅λλ€.
μ΄ μ ν ν€ν¨λμμ μΌμκ³Ό μ€λ₯Έμμ μμ§μκ°λ½λ§μ μ΄μ©ν΄μ μ«μλ§μ μ
λ ₯νλ €κ³ ν©λλ€.
맨 μ²μ μΌμ μμ§μκ°λ½μ * ν€ν¨λμ μ€λ₯Έμ μμ§μκ°λ½μ # ν€ν¨λ μμΉμμ μμνλ©°, μμ§μκ°λ½μ μ¬μ©νλ κ·μΉμ λ€μκ³Ό κ°μ΅λλ€.
- μμ§μκ°λ½μ μνμ’μ° 4κ°μ§ λ°©ν₯μΌλ‘λ§ μ΄λν μ μμΌλ©° ν€ν¨λ μ΄λ ν μΉΈμ κ±°λ¦¬λ‘ 1μ ν΄λΉν©λλ€.
- μΌμͺ½ μ΄μ 3κ°μ μ«μ 1, 4, 7μ μ λ ₯ν λλ μΌμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
- μ€λ₯Έμͺ½ μ΄μ 3κ°μ μ«μ 3, 6, 9λ₯Ό μ λ ₯ν λλ μ€λ₯Έμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
- κ°μ΄λ° μ΄μ 4κ°μ μ«μ 2, 5, 8, 0μ μ
λ ₯ν λλ λ μμ§μκ°λ½μ νμ¬ ν€ν¨λμ μμΉμμ λ κ°κΉμ΄ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
- 4-1. λ§μ½ λ μμ§μκ°λ½μ κ±°λ¦¬κ° κ°λ€λ©΄, μ€λ₯Έμμ‘μ΄λ μ€λ₯Έμ μμ§μκ°λ½, μΌμμ‘μ΄λ μΌμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
μμλλ‘ λλ₯Ό λ²νΈκ° λ΄κΈ΄ λ°°μ΄ numbers, μΌμμ‘μ΄μΈμ§ μ€λ₯Έμμ‘μ΄μΈ μ§λ₯Ό λνλ΄λ λ¬Έμμ΄ handκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, κ° λ²νΈλ₯Ό λλ₯Έ μμ§μκ°λ½μ΄ μΌμμΈ μ§ μ€λ₯ΈμμΈ μ§λ₯Ό λνλ΄λ μ°μλ λ¬Έμμ΄ ννλ‘ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
μ ν μ¬ν
- numbers λ°°μ΄μ ν¬κΈ°λ 1 μ΄μ 1,000 μ΄νμ λλ€.
- numbers λ°°μ΄ μμμ κ°μ 0 μ΄μ 9 μ΄νμΈ μ μμ λλ€.
- handλ "left" λλ "right"μ
λλ€.
- "left"λ μΌμμ‘μ΄, "right"λ μ€λ₯Έμμ‘μ΄λ₯Ό μλ―Έν©λλ€.
- μΌμ μμ§μκ°λ½μ μ¬μ©ν κ²½μ°λ L, μ€λ₯Έμ μμ§μκ°λ½μ μ¬μ©ν κ²½μ°λ Rμ μμλλ‘ μ΄μ΄ λΆμ¬ λ¬Έμμ΄ ννλ‘ return ν΄μ£ΌμΈμ.
μ μΆλ ₯ μ
numbers | hand | result |
[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] | "right" | "LRLLLRLLRRL" |
[7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] | "left" | "LRLLRRLLLRR" |
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] | "right" | "LLRLLRLLRL" |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- μμλλ‘ λλ¬μΌ ν λ²νΈκ° [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5]μ΄κ³ , μ€λ₯Έμμ‘μ΄μ λλ€.
- λ°λΌμ "LRLLLRLLRRL"λ₯Ό return ν©λλ€.
μ μΆλ ₯ μ #2
- μΌμμ‘μ΄κ° [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2]λ₯Ό μμλλ‘ λλ₯΄λ©΄ μ¬μ©ν μμ "LRLLRRLLLRR"μ΄ λ©λλ€.
μ μΆλ ₯ μ #3
- μ€λ₯Έμμ‘μ΄κ° [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]λ₯Ό μμλλ‘ λλ₯΄λ©΄ μ¬μ©ν μμ "LLRLLRLLRL"μ΄ λ©λλ€.
μ μΆ
import Foundation
func solution(_ numbers:[Int], _ hand:String) -> String {
var l = 10
var r = 12
var re = ""
for i in numbers{
if i == 1 || i == 4 || i == 7{
re += "L"
l = i
}
else if i == 3 || i == 6 || i == 9{
re += "R"
r = i
}
else{
var a = i
if i == 0{
a = 11
}
if (abs(a - l) % 3) + (abs(a - l) / 3) > (abs(a - r) % 3) + (abs(a - r) / 3) {
re += "R"
r = a
}
else if (abs(a - r) % 3) + (abs(a - r) / 3) > (abs(a - l) % 3) + (abs(a - l) / 3) {
re += "L"
l = a
}
else{
if hand == "right"{
re += "R"
r = a
}
else{
re += "L"
l = a
}
}
}
}
return re
}
μ²μ μ½λλ₯Ό μ€νν λ, μΌμμ νμ¬ μμΉλ₯Ό λνλ΄λ λ³μ lμ 10μΌλ‘, rμ 12λ‘ μ€μ νλ€.
μμλλ‘ numbers λ°°μ΄μ μμλ₯Ό λΉκ΅νλ€.
ν€ν¨λ μ«μκ° 1,4,7 μΈκ²½μ°μλ μΌμμ μ¬μ©νκ³ , lμ νμ¬ μ«μλ‘ λ³κ²½νλ€.
ν€ν¨λ μ«μκ° 3,6,9 μΈκ²½μ°μλ μ€λ₯Έμμ μ¬μ©νκ³ , rμ νμ¬ μ«μλ‘ λ³κ²½νλ€.
λλ¨Έμ§ κ²½μ°μλ (νμ¬μμΉ - κ° μμ μμΉ)μ μ λκ°μ 3μΌλ‘ λλ λλ¨Έμ§μ, 3μΌλ‘ λλ λͺ«μ ν©μ λΉκ΅νλ€.
ν©μ΄ λ μμ κ²½μ°κ° κ°κΉμ΄ κ²½μ°μ΄κΈ° λλ¬Έμ ν©μ΄ λ μμ μμ μ¬μ©ν ν νμ¬ μμΉλ₯Ό λ³κ²½νλ€.
ν©μ΄ κ°λ€λ©΄ μΌμμ‘μ΄μΈμ§, μ€λ₯Έμμ‘μ΄μΈμ§μ λ°λΌ κ²°μ νλ€.
λ€λ₯Έ νμ΄
import Foundation
func solution(_ numbers:[Int], _ hand:String) -> String {
let keypad = [[3,1],[0,0],[0,1],[0,2],[1,0],[1,1],[1,2],[2,0],[2,1],[2,2]]
var result = ""
var current = [[3,0], [3,2]]
for n in numbers{
if n == 1 || n == 4 || n == 7 {
result += "L"
current[0] = keypad[n]
}else if n == 3 || n == 6 || n == 9 {
result += "R"
current[1] = keypad[n]
}else{
let left = abs(current[0][0]-keypad[n][0]) + abs(current[0][1]-keypad[n][1])
let right = abs(current[1][0]-keypad[n][0]) + abs(current[1][1]-keypad[n][1])
if left == right{
let h = hand == "right" ? 1 : 0
result += h == 1 ? "R" : "L"
current[h] = keypad[n]
}
else if left > right{
result += "R"
current[1] = keypad[n]
}else{
result += "L"
current[0] = keypad[n]
}
}
}
return result
}
keypad λ°°μ΄μ μμ±νμ¬ κ° μΈλ±μ€μ λν keypadμ μ’νλ₯Ό μ μ₯νλ€.
νμ¬ μμΉλ₯Ό λνλ΄λ λ°°μ΄ currentλ μΌμͺ½μ (μΈλ±μ€ 0) 3,0μΌλ‘ μ€λ₯Έμͺ½μ(μΈλ±μ€ 1) 3,2λ‘ μ μ₯νλ€.
numbersμ λ°°μ΄ μμλ₯Ό μμλλ‘ λΉκ΅νλ€.
μ«μκ° 1, 4, 7μΈ κ²½μ° μΌμμ μ¬μ©νκ³ μΌμμ νμ¬μμΉλ₯Ό keypad λ°°μ΄μ nλ²μ§Έ μΈλ±μ€μ μμΉλ‘ λ³κ²½νλ€.
μ«μκ° 3, 6, 9μΈ κ²½μ° μ€λ₯Έμμ μ¬μ©νκ³ μ€λ₯Έμμ νμ¬μμΉλ₯Ό keypad λ°°μ΄μ nλ²μ§Έ μΈλ±μ€μ μμΉλ‘ λ³κ²½νλ€.
λλ¨Έμ§ κ²½μ°μλ κ° μμ νμ¬ μ’νμ μ«μμ μ’νμ μ°¨λ₯Ό ꡬν ν, μ λκ°μ κ΅¬ν΄ μ μ₯νλ€.
κ³μ°ν κ°μ΄ λμΌνλ€λ©΄ μΌμμ‘μ΄μΈμ§, μ€λ₯Έμμ‘μ΄μΈμ§μ λ°λΌ κ²°μ νλ€.
μ€λ₯Έμͺ½ κ°μ΄ μ λ€λ©΄ μ€λ₯Έμμ μ¬μ©νκ³ μ€λ₯Έμμ νμ¬μμΉλ₯Ό keypad λ°°μ΄μ nλ²μ§Έ μΈλ±μ€μ μμΉλ‘ λ³κ²½νλ€.
μΌμͺ½ κ°μ΄ μ λ€λ©΄ μΌμμ μ¬μ©νκ³ μΌμμ νμ¬μμΉλ₯Ό keypad λ°°μ΄μ nλ²μ§Έ μΈλ±μ€μ μμΉλ‘ λ³κ²½νλ€.
'β¨οΈ Language > swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€ LV.1] 3μ§λ² λ€μ§κΈ° (0) | 2023.03.02 |
---|---|
[νλ‘κ·Έλλ¨Έμ€ LV.1] λ κ° λ½μμ λνκΈ° (0) | 2023.03.02 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] ν¬λ μΈ μΈνλ½κΈ° κ²μ (0) | 2023.02.28 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] μ€ν¨μ¨ (0) | 2023.02.24 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] 체μ‘볡 (0) | 2023.02.24 |