์ง๋์ฃผ ๋๋น 248์ ์์น!! 800์ ์ ํฅํด ํ์ดํ !!๐
https://www.codetree.ai/cote/14/problems/find-hidden-words-2/description
์ฝ๋ํธ๋ฆฌ | ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ ์ ์
๊ตญ๊ฐ๋ํ๊ฐ ๋ง๋ ์ฝ๋ฉ ๊ณต๋ถ์ ๊ฐ์ด๋๋ถ ์ฝ๋ฉ ์์ด๋ณด๋ถํฐ ๊ฟ์ ์ง์ฅ ์ฝํ ํฉ๊ฒฉ๊น์ง, ๊ตญ๊ฐ๋ํ๊ฐ ์์ ํ ์ปค๋ฆฌํ๋ผ์ผ๋ก ์ค๋นํด๋ณด์ธ์.
www.codetree.ai
์จ์ ๋จ์ด ์ฐพ๊ธฐ 2
๋ฌธ์
N๊ณผ M์ด ์ฃผ์ด์ง๊ณ ๋ N * M์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ๋ฑกํฅ์ผ๋ก ๋์ค์ ๋ฐฉํฅ์ ํ์ง ์๊ณ ์ธ์ ํ์ฌ ๋์ค๋ ‘LEE’์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์ธ์.
์ ๋ ฅ ํ์
์ฒซ ๋ฒ์งธ ์ค์ ์ ์ N๊ณผ M์ด ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋๋ค.
- 1 ≤ N, M ≤ 50
์ถ๋ ฅ ํ์
์ฒซ ๋ฒ์งธ ์ค์ ๋ชจ๋ 'LEE'์ ๊ฐ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์ ์ถ๋ ฅ ์์
์์ 1
์ ๋ ฅ:
4 6
TAEHGI
EELVWE
LEELSE
HBLUEL
์ถ๋ ฅ:
6
์์ ์ค๋ช
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 'LEE'์ ๊ฐ์๋ ์ด 6๊ฐ์ ๋๋ค.
์ ํ
์๊ฐ์ ํ: 1000ms
๋ฉ๋ชจ๋ฆฌ ์ ํ: 80MB
ํ์ด
arr๋ฐฐ์ด์ ์ํํ๋ฉฐ ํด๋น ์นธ์ด "L"์ด๋ผ๋ฉด ํด๋น ์นธ ์ฃผ๋ณ์ ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ์ ๋ํด ํ์์ ์งํํ๋ค.
"E"๊ฐ ๋์ค๋ ๋ฐฉํฅ์ผ๋ก ํ์์ ๊ณ์ ์งํํ๋ค. ์ฃผ์ด์ง ๊ฒฉ์ ํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋๊ฑฐ๋ "E"๊ฐ ์๋ ๋ค๋ฅธ ์นธ์ด ๋์จ๋ค๋ฉด ํ์์ ์ข ๋ฃํ๋ค.
ํ๋์ ์นธ์ ๋ํ ํ์์ ๋ฉ์ท์ ๋, ํด๋น ์นธ์์๋ถํฐ ํ๋์ ๋ฐฉํฅ์ผ๋ก "L", "E", "E"๊ฐ ์กด์ฌํ๋ค๋ฉด result๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
์ฝ๋
let nm = readLine()!.split(separator: " ").map{Int(String($0))!}
let (n, m) = (nm[0], nm[1])
let dx = [1, 1, 1, -1, -1, -1, 0, 0]
let dy = [-1, 0, 1, -1, 0, 1, -1, 1]
var arr = [[String]]()
var result = 0
for _ in 0..<n {
arr.append(readLine()!.map{String($0)})
}
for i in 0..<n {
for j in 0..<m {
if arr[i][j] == "L" {
for idx in 0..<8 {
var cnt = 1
var x = i, y = j
while true {
let nx = x+dx[idx]
let ny = y+dy[idx]
if nx < 0 || nx >= n || ny < 0 || ny >= m || arr[nx][ny] != "E" {
break
}
cnt += 1
x = nx
y = ny
}
if cnt >= 3 {
result += 1
}
}
}
}
}
print(result)
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 5์ฃผ์ฐจ - HashMap (0) | 2023.10.04 |
---|---|
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 4์ฃผ์ฐจ - ์์ ํ์ (0) | 2023.10.04 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 1์ฃผ์ฐจ - ํ๋ก๊ทธ๋๋ฐ ์ฐ์ต (0) | 2023.09.14 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 2์ฃผ์ฐจ - DP (0) | 2023.09.14 |
[์ฝ๋ํธ๋ฆฌ] ์ฝ๋ํธ๋ฆฌ ๋ธ๋ก๊ทธ ์ฑ๋ฆฐ์ง (0) | 2023.09.12 |