Problem
Solution
์๋ฌผ์ ์ ์ด์ ์ ๊ตฌ๋ฉ์ ๋น๊ตํ์ง ์๊ณ ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋จผ์ ์ฒ๋ฆฌํด์ค๋๋ค.
1.์๋ฌผ์ ์ ๊ตฌ๋ฉ๊ณผ ์ด์ ์ ๋๊ธฐ๊ฐ ๊ฐ ๊ฐ 1๊ฐ์ผ ๊ฒฝ์ฐ True
2.์๋ฌผ์ ์ ๊ตฌ๋ฉ์ด ์ด์ ์ ๋๊ธฐ๋ณด๋ค ๋ง์ ๊ฒฝ์ฐ False
๋ง์ฝ 2๊ฐ์ ๊ฒฝ์ฐ ๋ชจ๋ ํด๋นํ์ง ์๋๋ค๋ฉด
์๋ฌผ์ ์ ์ด์ ์ ๊ฐ ๊ตฌ๋ฉ๊ณผ ๋๊ธฐ๊ฐ ์ด๋ ๋ถ๋ถ์ ์๋์ง๋ฅผ ์์๋ด์ผ ํ๋๋ฐ์.
๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ์์๋ด์ผ ํ ๊น์?
์ ๋ ์๋์ ๊ฐ์ด ์๋ฌผ์ ์ ์ด์ ๋ฅผ X,Y ์ขํ๋ก ์๊ฐ์ ํด๋ณด์์ต๋๋ค.
์ง๋ฌธ์ ๋์ ์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ด์ ๋๊ธฐ๋ (0,1),(1,2),(2,2) ์ด๊ณ
์๋ฌผ์ ๊ตฌ๋ฉ์ (2,1),(1,2)๊ฐ ๋๊ฒ ์ฃ ?
(์ฝ๋๋ก ์์๋ด๋ ๋ฐฉ๋ฒ์ ์๋ ์์ค์ฝ๋์์ findSpinOrSlots ํจ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!)
์ด๋ ๊ฒ ์ด์ ์ ์๋ฌผ์ ๊ตฌ๋ฉ์ ์์๋๋ค๋ฉด
์ด์ ๋ฅผ ํ์ ํ์๋์ ๋๊ธฐ ์์น๋ฅผ ์ค์ ํด์ค์ผ ํฉ๋๋ค.
์๋๋ ์ฒ์ ์ด์ ์ ์์น๋ฅผ 0๋์ผ๋ ๊ธฐ์ค์ผ๋ก ์๊ณ๋ฐฉํฅ์ผ๋ก 90๋ ๋๋ฆฌ๋ฉด ์์์ ์ฐ์ธก๊ทธ๋ฆผ์ด ๋๊ณ
์๊ณ๋ฐฉํฅ์ผ๋ก 180๋ ๋ฐฉํฅ์ผ๋ก ๋๋ฆฌ๋ฉด ์๋์์ ์ข์ธก๊ทธ๋ฆผ , ์๊ณ๋ฐฉํฅ์ผ๋ก 270๋ ๋๋ฆฌ๋ฉด ์๋์์ ์ฐ์ธก ๊ทธ๋ฆผ์ ๋๋ค.
์ด๋ ๊ฒ ๋ณด๋ฉด ์๊ณ๋ฐฉํฅ์ผ๋ก 90๋ ํ์ ํ ๋๋ง๋ค ์๊ธฐ๋ ๊ท์น์ด ์๋๋ฐ์.
y์ ๊ฐ์ฅ ์ต๋๊ฐ์ ๋นผ์ค ๋ค ์ ๋๊ฐ์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ณ x์ y์ ์์น๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด 0๋์ผ๋ ๊ฐ ๋๊ธฐ์ ์๋ (0,1), (1,2), (2,2) ์ ๋๋ค.
๋จผ์ ์ฒซ๋ฒ์งธ 0,1 ์ y์ ๊ฐ์ฅ ์ต๋๊ฐ์ด 2๋ฅผ ๋นผ์ค ๋ค ์ ๋๊ฐ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ฉด -> 0,1
๊ทธ ๋ค์ x์ y์ ์์น๋ฅผ ๋ฐ๊ฟ์ฃผ๋ฉด -> 1,0
1,2๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์งํํ๋ฉด -> 0,1
2,2๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์งํํ๋ฉด -> 0,2
๋ก (1,0), (0,1), (0,2)๊ฐ ๋๊ณ ๋ณด๋ฉด ์๊ณ๋ฐฉํฅ์ผ๋ก 90๋ ๋๋ฆฐ ์์์ ์ฐ์ธก ๊ทธ๋ฆผ์ ๋๊ธฐ ์์น๊ฐ ๋์์ฃ ?
์ด๋ฐ์์ผ๋ก ๊ฐ ํ์ ๋ฐฉํฅ์ ๋ฐ๋ฅธ ๋๊ธฐ์ ์์น๋ฅผ ์ ์ฅํด์ค๋๋ค.
(์๋ ์์ค์ฝ๋์์ rotate ํจ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!)
์ด๋ ๊ฒ ๋ชจ๋ ํ์ ๋ฐฉํฅ์ ๋๊ธฐ ์์น๋ฅผ ๊ตฌํ๋ค๋ฉด ๊ฐ ํ์ ๋ฐฉํฅ์ ๋ฐ๋ฅธ ๋๊ธฐ ์์น๊ฐ ์๋ฌผ์ ์ ๊ตฌ๋ฉ ์์น์ ์ผ์นํ๋์ง ํ์ธํด๋ด์ผ๊ฒ ์ฃ ?
๊ฐ์ฅ ๋จผ์ ์๋ฌผ์ ์ ์นธ์๋งํผ์ ์ด์ ๋๊ธฐ์์น์ x์ y์ ๊ฐ ๊ฐ ๋นผ์ค๋๋ค.
๊ทธ๋ผ ์ด๊ธฐ ์ธํ ์ ์๋์ ๊ฐ์ ์์น๊ฐ ๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์๋ถํฐ๋ ๊ฐ y์ x์ +1์ ํด์ฃผ๋ฉด์ ์๋ฌผ์ ์ ๋น๊ตํด์ผํ๋๋ฐ์
์ด์ ๊ฐ M * M์นธ์ด๊ณ ์๋ฌผ์ ๊ฐ N*N์นธ์ด๋ผ๋ฉด ๊ฐ x์ y๊ฐ M+N์ -1 ๋งํผ์ ์ด๋ํด์ผ ๋ชจ๋ ์์น๋ฅผ ํ์ธํ ์ ์์ ๊ฒ์ ๋๋ค.
์๋์ GIF๋ฅผ ์ฐธ๊ณ ํด์ฃผ์๋ฉด ์ดํด๊ฐ ์ฌ์ฐ์ค๊ฑฐ์์!
์ด๋ ๊ฒ ๋ชจ๋ ํ์ ํ ์ด์ ์ ๋๊ธฐ์ ์์น์ ์๋ฌผ์ ์ ๊ตฌ๋ฉ์ ์์น๋ฅผ ๋น๊ตํด์ฃผ๋ค๊ฐ ๋ง์ฝ ์ผ์นํ๋๊ฒ ๋์ค๋ฉด
true๋ฅผ ๋ฐํํ๊ณ ์๋ค๋ฉด false๋ฅผ ๋ฐํํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
(์๋ ์์ค์ฝ๋์ moveAll ํจ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์)
์ฃผ์ํ์ค ์ ์ ๋ง์ฝ 2์ฐจ์ ๋ฐฐ์ด [[2,1],[1,2]]์ [[1,2],[2,1]]์ด ์๋ค๋ฉด ์ด๊ฒ์ ๊ฐ์ ๊ฒ์ผ๊น์?
์ ๋ต์ X์ ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๊ฐ ์ด์ ์ ์์น๋ฅผ y ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํด์ค๋ค x ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
(์๋ ์์ค์ฝ๋์ sortKeyspins์ ์ฐธ๊ณ ํด์ฃผ์ธ์.)
Source Code
์๋กญ๊ฒ ์๊ฒ๋ ๊ฒ
1์ฐจ์ ์ผ๋ก ์ ๋ ฌํ ๊ฒ์ ์ ์งํ ์ฑ ๋ ๋ค๋ฅธ ์กฐ๊ฑด์ผ๋ก ์ ๋ ฌํ๋ ๋ฒ
sort(by: {$0[1] == $1[1] ? $0[0] < $1[0] : $0[1] < $1[1]})
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] 2021 KAKAO BLIND RECRUITMENT ์ ๊ท ์์ด๋ ์ถ์ฒ (3) | 2021.03.07 |
---|---|
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ์ฅ ๋จผ ๋ ธ๋ (์ฌ์ด ํ์ด ํฌํจ) (0) | 2021.03.07 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ์ฌ ์ฐ๊ฒฐํ๊ธฐ (5) | 2021.02.20 |
ํ๋ก๊ทธ๋๋จธ์ค N์ผ๋ก ํํ Swift (0) | 2021.02.07 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ Swift (0) | 2021.01.23 |
๋๊ธ