์ฝ๋ฉํ
์คํธ๋ฅผ ์ค๋นํ๋ ๋จธ์ฑ์ด๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ๋ฌธ์ ๋ฅผ ํ๊ณ ๋์ค์ ๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๊ณต๋ถํ๋ ค๊ณ ์์ฑํ ์ฝ๋๋ฅผ ์ปดํจํฐ ๋ฐํํ๋ฉด์ ์๋ฌด ์์น์๋ ์ ์ฅํด ๋ก๋๋ค. ์ ์ฅํ ์ฝ๋๊ฐ ๋ง์์ง๋ฉด์ ๋จธ์ฑ์ด๋ ๋ณธ์ธ์ ์ปดํจํฐ ๋ฐํํ๋ฉด์ด ๋๋ฌด ์ง์ ๋ถํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ํ๋ก๊ทธ๋๋จธ์ค์์ ์์ฑํ๋ ์ฝ๋๋ ๊ทธ ๋ฌธ์ ์ ๊ฐ์ ๋ค์ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ฅํด ๋ ํ์ผ๋ค์ ์ ๋ถ ์ญ์ ํ๊ธฐ๋ก ํ์ต๋๋ค.
์ปดํจํฐ ๋ฐํํ๋ฉด์ ๊ฐ ์นธ์ด ์ ์ฌ๊ฐํ์ธ ๊ฒฉ์ํ์
๋๋ค. ์ด๋ ์ปดํจํฐ ๋ฐํํ๋ฉด์ ์ํ๋ฅผ ๋ํ๋ธ ๋ฌธ์์ด ๋ฐฐ์ด 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ํ๋ฉด ๋ฉ๋๋ค.ํ๊ตญ์คํ๊ต์ ๋ค๋๋ ํ์๋ค์ ๊ฐ์ ์ ์ ๋ฒํธ๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. ์ด ํ๊ต ํ์ 3๋ช
์ ์ ์ ๋ฒํธ๋ฅผ ๋ํ์ ๋ 0์ด ๋๋ฉด 3๋ช
์ ํ์์ ์ผ์ด์ฌ๋ผ๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, 5๋ช
์ ํ์์ด ์๊ณ , ๊ฐ๊ฐ์ ์ ์ ๋ฒํธ๊ฐ ์์๋๋ก -2, 3, 0, 2, -5์ผ ๋, ์ฒซ ๋ฒ์งธ, ์ธ ๋ฒ์งธ, ๋ค ๋ฒ์งธ ํ์์ ์ ์ ๋ฒํธ๋ฅผ ๋ํ๋ฉด 0์ด๋ฏ๋ก ์ธ ํ์์ ์ผ์ด์ฌ์
๋๋ค. ๋ํ, ๋ ๋ฒ์งธ, ๋ค ๋ฒ์งธ, ๋ค์ฏ ๋ฒ์งธ ํ์์ ์ ์ ๋ฒํธ๋ฅผ ๋ํด๋ 0์ด๋ฏ๋ก ์ธ ํ์๋ ์ผ์ด์ฌ์
๋๋ค. ๋ฐ๋ผ์ ์ด ๊ฒฝ์ฐ ํ๊ตญ์คํ๊ต์์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ผ์ด์ฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
ํ๊ตญ์คํ๊ต ํ์๋ค์ ๋ฒํธ๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด number๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ํ์๋ค ์ค ์ผ์ด์ฌ๋ฅผ ๋ง๋ค ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
- 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๋ฅผ ๋ง์กฑํด์ผ ํฉ๋๋ค.
๋์ ํ์ด
function solution(wallpaper) {
const newArray = [];
const xArray = [];
const yArray = [];
const answerArray = [];
for(x = 0; x < wallpaper.length; x++){
for(y = 0; y < wallpaper[x].length; y++){
if(wallpaper[x][y] === "#"){
newArray.push({x, y})
}
}
}
console.log('newArray', newArray)
newArray.forEach((newA) => {
xArray.push(newA.x)
yArray.push(newA.y)
})
answerArray.push(Math.min(...xArray), Math.min(...yArray), Math.max(...xArray) + 1, Math.max(...yArray) + 1)
return answerArray;
}
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://school.programmers.co.kr/learn/challenges
'๐จ JavaScript > ๋ฌธ์ ํ๊ธฐ (ํ๋ก๊ทธ๋๋จธ์ค, ์ฝ๋ฉ์ ํ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] 2022 KAKAO BLIND RECRUITMENT : ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (1) | 2023.12.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2023.12.10 |
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] ์ถ์ต ์ ์ (0) | 2023.12.10 |
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] ์ผ์ด์ฌ (0) | 2023.12.10 |
Level 3 : 9 ์ฅ๋ฐ๊ตฌ๋๋ฒํผ ๊ตฌํํ๊ธฐ(localStorage, array, forEach, JSON) (0) | 2023.04.15 |