[Swift] νλ‘κ·Έλλ¨Έμ€ LV.1 λ°ννλ©΄ μ 리
νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ¨μ
λ°ννλ©΄ μ 리
λ¬Έμ μ€λͺ
μ½λ©ν μ€νΈλ₯Ό μ€λΉνλ λ¨Έμ±μ΄λ νλ‘κ·Έλλ¨Έμ€μμ λ¬Έμ λ₯Ό νκ³ λμ€μ λ€μ μ½λλ₯Ό 보면μ 곡λΆνλ €κ³ μμ±ν μ½λλ₯Ό μ»΄ν¨ν° λ°ννλ©΄μ μ무 μμΉμλ μ μ₯ν΄ λ‘λλ€. μ μ₯ν μ½λκ° λ§μμ§λ©΄μ λ¨Έμ±μ΄λ λ³ΈμΈμ μ»΄ν¨ν° λ°ννλ©΄μ΄ λ무 μ§μ λΆνλ€κ³ μκ°νμ΅λλ€. νλ‘κ·Έλλ¨Έμ€μμ μμ±νλ μ½λλ κ·Έ λ¬Έμ μ κ°μ λ€μ λ³Ό μ μκΈ° λλ¬Έμ μ μ₯ν΄ λ νμΌλ€μ μ λΆ μμ νκΈ°λ‘ νμ΅λλ€.
μ»΄ν¨ν° λ°ννλ©΄μ κ° μΉΈμ΄ μ μ¬κ°νμΈ κ²©μνμ λλ€. μ΄λ μ»΄ν¨ν° λ°ννλ©΄μ μνλ₯Ό λνλΈ λ¬Έμμ΄ λ°°μ΄ wallpaperκ° μ£Όμ΄μ§λλ€. νμΌλ€μ λ°ννλ©΄μ 격μμΉΈμ μμΉνκ³ λ°ννλ©΄μ 격μμ λ€μ λ°ννλ©΄μ κ°μ₯ μΌμͺ½ μλ₯Ό (0, 0)μΌλ‘ μμν΄ (μΈλ‘ μ’ν, κ°λ‘ μ’ν)λ‘ ννν©λλ€. λΉμΉΈμ ".", νμΌμ΄ μλ μΉΈμ "#"μ κ°μ κ°μ§λλ€. λλκ·Έλ₯Ό νλ©΄ νμΌλ€μ μ νν μ μκ³ , μ νλ νμΌλ€μ μμ ν μ μμ΅λλ€. λ¨Έμ±μ΄λ μ΅μνμ μ΄λ거리λ₯Ό κ°λ ν λ²μ λλκ·Έλ‘ λͺ¨λ νμΌμ μ νν΄μ ν λ²μ μ§μ°λ €κ³ νλ©° λλκ·Έλ‘ νμΌλ€μ μ ννλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
- λλκ·Έλ λ°ννλ©΄μ 격μμ S(lux, luy)λ₯Ό λ§μ°μ€ μΌμͺ½ λ²νΌμΌλ‘ ν΄λ¦ν μνλ‘ κ²©μμ E(rdx, rdy)λ‘ μ΄λν λ€ λ§μ°μ€ μΌμͺ½ λ²νΌμ λΌλ νλμ λλ€. μ΄λ, "μ Sμμ μ Eλ‘ λλκ·Ένλ€"λΌκ³ νννκ³ μ Sμ μ Eλ₯Ό κ°κ° λλκ·Έμ μμμ , λμ μ΄λΌκ³ ννν©λλ€.
- μ S(lux, luy)μμ μ E(rdx, rdy)λ‘ λλκ·Έλ₯Ό ν λ, "λλκ·Έ ν 거리"λ |rdx - lux| + |rdy - luy|λ‘ μ μν©λλ€.
- μ Sμμ μ Eλ‘ λλκ·Έλ₯Ό νλ©΄ λ°ννλ©΄μμ λ 격μμ μ κ°κ° μΌμͺ½ μ, μ€λ₯Έμͺ½ μλλ‘ νλ μ§μ¬κ°ν λ΄λΆμ μλ λͺ¨λ νμΌμ΄ μ νλ©λλ€.
μλ₯Ό λ€μ΄ wallpaper = [".#...", "..#..", "...#."]μΈ λ°ννλ©΄μ κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ λ€μκ³Ό κ°μ΅λλ€.
μ΄λ¬ν λ°ννλ©΄μμ λ€μ κ·Έλ¦Όκ³Ό κ°μ΄ S(0, 1)μμ E(3, 4)λ‘ λλκ·Ένλ©΄ μΈ κ°μ νμΌμ΄ λͺ¨λ μ νλλ―λ‘ λλκ·Έ ν 거리 (3 - 0) + (4 - 1) = 6μ μ΅μκ°μΌλ‘ λͺ¨λ νμΌμ μ ν κ°λ₯ν©λλ€.
(0, 0)μμ (3, 5)λ‘ λλκ·Έν΄λ λͺ¨λ νμΌμ μ νν μ μμ§λ§ μ΄λ λλκ·Έ ν 거리λ (3 - 0) + (5 - 0) = 8μ΄κ³ μ΄μ μ λ°©λ²λ³΄λ€ κ±°λ¦¬κ° λμ΄λ©λλ€.
λ¨Έμ±μ΄μ μ»΄ν¨ν° λ°ννλ©΄μ μνλ₯Ό λνλ΄λ λ¬Έμμ΄ λ°°μ΄ wallpaperκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ λ°ννλ©΄μ νμΌλ€μ ν λ²μ μμ νκΈ° μν΄ μ΅μνμ μ΄λ거리λ₯Ό κ°λ λλκ·Έμ μμμ κ³Ό λμ μ λ΄μ μ μ λ°°μ΄μ return νλ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ. λλκ·Έμ μμμ μ΄ (lux, luy), λμ μ΄ (rdx, rdy)λΌλ©΄ μ μ λ°°μ΄ [lux, luy, rdx, rdy]λ₯Ό return νλ©΄ λ©λλ€.
μ ν μ¬ν
- 1 ≤ wallpaperμ κΈΈμ΄ ≤ 50
- 1 ≤ wallpaper[i]μ κΈΈμ΄ ≤ 50
- wallpaperμ λͺ¨λ μμμ κΈΈμ΄λ λμΌν©λλ€.
- wallpaper[i][j]λ λ°ννλ©΄μμ i + 1ν j + 1μ΄μ ν΄λΉνλ μΉΈμ μνλ₯Ό λνλ λλ€.
- wallpaper[i][j]λ "#" λλ "."μ κ°λ§ κ°μ§λλ€.
- λ°ννλ©΄μλ μ μ΄λ νλμ νμΌμ΄ μμ΅λλ€.
- λλκ·Έ μμμ (lux, luy)μ λμ (rdx, rdy)λ lux < rdx, luy < rdyλ₯Ό λ§μ‘±ν΄μΌ ν©λλ€.
μ μΆλ ₯ μ
wallpaper | result |
[".#...", "..#..", "...#."] | [0, 1, 3, 4] |
["..........", ".....#....", "......##..", "...##.....", "....#....."] | [1, 3, 5, 8] |
[".##...##.", "#..#.#..#", "#...#...#", ".#.....#.", "..#...#..", "...#.#...", "....#...."] | [0, 0, 7, 9] |
["..", "#."] | [1, 0, 2, 1] |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- λ¬Έμ μ€λͺ μ μμμ κ°μ μμ μ λλ€. (0, 1)μμ (3, 4)λ‘ λλκ·Ένλ©΄ λͺ¨λ νμΌμ μ νν μ μκ³ λλκ·Έ ν 거리λ 6μ΄μκ³ , 6λ³΄λ€ μ μ κ±°λ¦¬λ‘ λͺ¨λ νμΌμ μ ννλ λ°©λ²μ μμ΅λλ€. λ°λΌμ [0, 1, 3, 4]λ₯Ό return ν©λλ€.
μ μΆλ ₯ μ #2
- μμ 2λ²μ λ°ννλ©΄μ λ€μκ³Ό κ°μ΅λλ€.
- (1, 3)μμ (5, 8)λ‘ λλκ·Ένλ©΄ λͺ¨λ νμΌμ μ νν μ μκ³ μ΄λ³΄λ€ μ μ μ΄λκ±°λ¦¬λ‘ λͺ¨λ νμΌμ μ ννλ λ°©λ²μ μμ΅λλ€. λ°λΌμ κ°μ₯ μ μ μ΄λμ λλκ·Έλ‘ λͺ¨λ νμΌμ μ ννλ λ°©λ²μΈ [1, 3, 5, 8]μ return ν©λλ€.
μ μΆλ ₯ μ #3
- μμ 3λ²μ λ°ννλ©΄μ λ€μκ³Ό κ°μ΅λλ€.
- λͺ¨λ νμΌμ μ ννκΈ° μν΄μ λ°ννλ©΄μ κ°μ₯ μΌμͺ½ μ (0, 0)μμ κ°μ₯ μ€λ₯Έμͺ½ μλ (7, 9)λ‘ λλκ·Έν΄μΌλ§ ν©λλ€. λ°λΌμ [0, 0, 7, 9]λ₯Ό return ν©λλ€.
μ μΆλ ₯ μ #4
- μμ 4λ²μ λ°ννλ©΄μ λ€μκ³Ό κ°μ΄ 2ν 1μ΄μλ§ μμ΄μ½μ΄ μμ΅λλ€.
- μ΄λ₯Ό λλκ·Έλ‘ μ ννκΈ° μν΄μλ κ·Έ μΉΈμ μΌμͺ½ μ (1, 0)μμ μ€λ₯Έμͺ½ μλ (2, 1)λ‘ λλκ·Ένλ©΄ λ©λλ€. (1, 0)μμ (2, 2)λ‘ λλκ·Έν΄λ μμ΄μ½μ μ νν μ μμ§λ§ μ΄μ λ³΄λ€ μ΄λκ±°λ¦¬κ° λμ΄λ©λλ€. λ°λΌμ [1, 0, 2, 1]μ return ν©λλ€.
μ μΆ
import Foundation
func solution(_ wallpaper:[String]) -> [Int] {
var x_arr = [Int]()
var y_arr = [Int]()
for (i, paper) in wallpaper.enumerated() {
if paper.contains("#"){
for (index, w) in paper.map{String($0)}.enumerated(){
if w == "#" {
x_arr.append(i)
y_arr.append(index)
}
}
}
}
return [x_arr.min() ?? 0, y_arr.min() ?? 0, x_arr.max()!+1, y_arr.max()!+1]
}
wallpaper λ°°μ΄μ μ΄μ "#"μ΄ μλ κ²½μ°μλ§ μμͺ½ forλ¬Έμ μ€ννλ€.
x_arrμλ μ΄μ λνλ΄λ iμ κ°μ μ μ₯νκ³ , y_arrμλ νμ λνλ΄λ indexκ°μ μ μ₯νλ€.
x_arrμμ κ°μ₯ μμ κ°κ³Ό y_arrμμ κ°μ₯ μμ κ°, x_arrμμ κ°μ₯ ν° κ°+1, y_arrμμ κ°μ₯ ν° κ°+1μ λ°°μ΄μ λ΄μ λ°ννλ€.
(κ° λ°°μ΄μ κ°μ΄ μλ€λ©΄ 0μ λ΄μ λ°ννλ€.)