ν°μ€ν 리 λ·°
π₯ λ¬Έμ
μ€λ§νΈν° μ ν ν€ν¨λμ κ° μΉΈμ λ€μκ³Ό κ°μ΄ μ«μλ€μ΄ μ ν μμ΅λλ€.
μ΄ μ ν ν€ν¨λμμ μΌμκ³Ό μ€λ₯Έμμ μμ§μκ°λ½λ§μ μ΄μ©ν΄μ μ«μλ§μ μ
λ ₯νλ €κ³ ν©λλ€.
맨 μ²μ μΌμ μμ§μκ°λ½μ * ν€ν¨λμ μ€λ₯Έμ μμ§μκ°λ½μ # ν€ν¨λ μμΉμμ μμνλ©°, μμ§μκ°λ½μ μ¬μ©νλ κ·μΉμ λ€μκ³Ό κ°μ΅λλ€.
- μμ§μκ°λ½μ μνμ’μ° 4κ°μ§ λ°©ν₯μΌλ‘λ§ μ΄λν μ μμΌλ©° ν€ν¨λ μ΄λ ν μΉΈμ κ±°λ¦¬λ‘ 1μ ν΄λΉν©λλ€.
- μΌμͺ½ μ΄μ 3κ°μ μ«μ 1, 4, 7μ μ λ ₯ν λλ μΌμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
- μ€λ₯Έμͺ½ μ΄μ 3κ°μ μ«μ 3, 6, 9λ₯Ό μ λ ₯ν λλ μ€λ₯Έμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
- κ°μ΄λ° μ΄μ 4κ°μ μ«μ 2, 5, 8, 0μ μ
λ ₯ν λλ λ μμ§μκ°λ½μ νμ¬ ν€ν¨λμ μμΉμμ λ κ°κΉμ΄ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
4-1. λ§μ½ λ μμ§μκ°λ½μ κ±°λ¦¬κ° κ°λ€λ©΄, μ€λ₯Έμμ‘μ΄λ μ€λ₯Έμ μμ§μκ°λ½, μΌμμ‘μ΄λ μΌμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
μμλλ‘ λλ₯Ό λ²νΈκ° λ΄κΈ΄ λ°°μ΄ numbers, μΌμμ‘μ΄μΈμ§ μ€λ₯Έμμ‘μ΄μΈ μ§λ₯Ό λνλ΄λ λ¬Έμμ΄ handκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, κ° λ²νΈλ₯Ό λλ₯Έ μμ§μκ°λ½μ΄ μΌμμΈ μ§ μ€λ₯ΈμμΈ μ§λ₯Ό λνλ΄λ μ°μλ λ¬Έμμ΄ ννλ‘ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
π€ νμ΄ λ°©λ²
*μ 10, #μ 12, 0μ 11λ‘ λ°κΎΈμ΄μ€λ€.
κ·Έ ν κ° μ«μλ₯Ό 3μΌλ‘ λλμμ λ λλ¨Έμ§κ° 1, 2, 0μ΄ λλ€.
μ΄λ, 1μ μΌμ, 2λ κ°μ΄λ°, 3μ μ€λ₯Έμμ΄ λλ€.
ν€ν¨λλ₯Ό λλ₯Ό λλ§λ€ μΌμκ³Ό μ€λ₯Έμμ΄ κ°κ° λλ₯Έ λ²νΈλ₯Ό μ μ₯νλ€.
κ°μ΄λ° 2, 5, 8, 0μ κ²½μ°λ μ μ₯λ λ²νΈλ₯Ό μ΄μ©νμ¬ κ±°λ¦¬λ₯Ό κ³μ°νλ€.
let leftAbs = abs((num - left) / 3) + abs((num - left) % 3)
μΌμͺ½κ³Ό μ€λ₯Έμͺ½μ 거리λ₯Ό λΉκ΅νμ¬ λ κ°κΉμ΄ 거리μ μκ°λ½μΌλ‘ λ²νΈλ₯Ό λλ₯Έλ€.
λ§μ½ κ±°λ¦¬κ° κ°μ κ²½μ°μλ μ€λ₯Έμμ‘μ΄λ μ€λ₯ΈμμΌλ‘ μΌμμ‘μ΄λ μΌμμΌλ‘ λλ₯Έλ€.
π©π»π» Swift Code
import Foundation
func solution(_ numbers:[Int], _ hand:String) -> String {
var numbers = numbers.map{Int(String($0).replacingOccurrences(of: "0", with: "11"))!}
var hand = hand == "left" ? "L" : "R"
var result = ""
var left = 10
var right = 12
print(numbers)
for num in numbers {
// 1, 4, 7 -> Left | 3, 6, 9 -> Right
if num != 11 && num % 3 == 1 {
left = num
result.append("L")
} else if num != 11 && num % 3 == 0 {
right = num
result.append("R")
}
// 2, 5, 8, 0
else if num == 10 || num % 3 == 2 {
let leftAbs = abs((num - left) / 3) + abs((num - left) % 3)
let rightAbs = abs((num - right) / 3) + abs((num - right) % 3)
// κ±°λ¦¬κ° κ°μ κ²½μ°
if leftAbs == rightAbs {
if hand == "L" { left = num } else { right = num }
result.append(hand)
}
// μΌμμ΄ κ°κΉμΈ κ²½μ°
else if leftAbs < rightAbs {
left = num
result.append("L")
}
// μ€λ₯Έμμ΄ κ°κΉμΈ κ²½μ°
else if rightAbs < leftAbs {
right = num
result.append("R")
}
}
}
return result
}
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Alogorithm] λ¬Έμμ΄ λ΄ λ§μλλ‘ μ λ ¬νκΈ° (0) | 2021.04.16 |
---|---|
[Algorithm] 체μ‘볡 (νμλ²(Greedy)) (0) | 2021.04.16 |
[Algorithm] μ΅λ곡μ½μμ μ΅μ곡배μ (μ ν΄λ¦¬λ νΈμ λ²) (0) | 2021.04.05 |
[Algorithm] μμ μ°ΎκΈ° (μλΌν μ€ν λ€μ€μ 체) (0) | 2021.04.05 |
[Algorithm] NμΌλ‘ νν (κΉμ΄ μ°μ νμ(DFS)) (0) | 2021.03.19 |
- Total
- Today
- Yesterday
- λ¬λ ₯
- κΉμ΄ μ°μ νμ
- Firebase
- Baekjoon
- BOJ
- μ ν΄λ¦¬λ νΈμ λ²
- UISearchController
- IOS
- μ΅λ곡μ½μ
- map
- μ΅μ곡배μ
- java
- mysql
- SWIFT
- sql
- programmers
- DFS
- νλ‘κ·Έλλ¨Έμ€
- ternary
- abs()
- Git
- μλ‘ν μ€ν λ€μ€μ 체
- calendar
- Kakao
- Algorithm
- λ³μ‘
- λ€λ¦¬λ₯Ό μ§λλ νΈλ
- compactMap
- TIL
- iTunes Search API
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |