-
[Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ Kit ์ฒด์ก๋ณตAlgo Rhythm๐บ๐/Programmers 2020. 6. 27. 14:02
๋ฌธ์ ์ค๋ช
์ ์ฌ์๊ฐ์ ๋๋์ด ๋ค์ด, ์ผ๋ถ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ต๋๋ค. ๋คํํ ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์์ด ์ด๋ค์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ค ํฉ๋๋ค. ํ์๋ค์ ๋ฒํธ๋ ์ฒด๊ฒฉ ์์ผ๋ก ๋งค๊ฒจ์ ธ ์์ด, ๋ฐ๋ก ์๋ฒํธ์ ํ์์ด๋ ๋ฐ๋ก ๋ท๋ฒํธ์ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 4๋ฒ ํ์์ 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์ฒด์ก๋ณต์ด ์์ผ๋ฉด ์์ ์ ๋ค์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒด์ก๋ณต์ ์ ์ ํ ๋น๋ ค ์ต๋ํ ๋ง์ ํ์์ด ์ฒด์ก์์ ์ ๋ค์ด์ผ ํฉ๋๋ค.
์ ์ฒด ํ์์ ์ n, ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด lost, ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด reserve๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฒด์ก์์ ์ ๋ค์ ์ ์๋ ํ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
-
์ ์ฒด ํ์์ ์๋ 2๋ช ์ด์ 30๋ช ์ดํ์ ๋๋ค.
-
์ฒด์ก๋ณต์ ๋๋๋นํ ํ์์ ์๋ 1๋ช ์ด์ n๋ช ์ดํ์ด๊ณ ์ค๋ณต๋๋ ๋ฒํธ๋ ์์ต๋๋ค.
-
์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ ์๋ 1๋ช ์ด์ n๋ช ์ดํ์ด๊ณ ์ค๋ณต๋๋ ๋ฒํธ๋ ์์ต๋๋ค.
-
์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์๋ง ๋ค๋ฅธ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
-
์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ ์ ์์ต๋๋ค. ์ด๋ ์ด ํ์์ ์ฒด์ก๋ณต์ ํ๋๋ง ๋๋๋นํ๋ค๊ณ ๊ฐ์ ํ๋ฉฐ, ๋จ์ ์ฒด์ก๋ณต์ด ํ๋์ด๊ธฐ์ ๋ค๋ฅธ ํ์์๊ฒ๋ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
๋๋ ์ด๋ป๊ฒ ํ์๋
import java.util.Arrays; class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = 0; int[] students = new int[n]; // 1. initialize for(int i = 0; i < students.length; i++) { students[i] = 1; } // 2. check student who lost the cloth for(int i = 0; i < lost.length; i++) { students[lost[i] - 1]--; } // 3. check student who has extra cloth for(int i = 0; i < reserve.length; i++) { students[reserve[i] - 1]++; } // 4. give extra cloth to student who lost the cloth for(int i = 0; i < students.length; i++) { int lStd = i - 1; int rStd = i + 1; if(students[i] > 1 && lStd > -1 && students[lStd] == 0) { students[i]--; students[lStd]++; } if(students[i] > 1 && rStd < students.length && students[rStd] == 0) { students[i]--; students[rStd]++; } } // 5. count the number of student who has cloth for(int i = 0; i < students.length; i++) { if(students[i] > 0) answer++; } return answer; } }
๋๋ ์ ์ ๋ ๊ฒ ํ์๋
๋ฌธ์ ๋ฅผ ์ฝ๊ณ ์๋์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ์ฌ๋๋ค.
-
ํ์๋ค ๊ฐ๊ฐ์ ์ฒด์ก๋ณต ๊ฐ์๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ํฌ๊ธฐ๊ฐ n์ธ ๋ฐฐ์ด์ ๋ง๋ค๊ณ 1๋ก ์ด๊ธฐํํ๋ค.
-
์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์ decrementํ๋ค.
-
์ฌ๋ฒ์ ์ฒด์ก๋ณต์ด ์๋ ํ์๋ค์ incrementํ๋ค.
-
์ฌ๋ฒ์ ์ฒด์ก๋ณต์ด ์๋ ํ์๋ค์ด ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์๊ฒ ์๋์ ๊ฐ์ด ์ฒด์ก๋ณต์ ๋น๋ ค์ค๋ค.
-
์ผ์ชฝ ์น๊ตฌ๊ฐ ์๊ณ ๊ทธ ์น๊ตฌ๊ฐ ๊ฐ์ง ์ฒด์ก๋ณต์ ๊ฐ์๊ฐ 0๊ฐ์ด๋ฉด ์์ ์ ์ท์ ํ๋ ๋น๋ ค์ค๋ค.
-
์ค๋ฅธ์ชฝ ์น๊ตฌ๊ฐ ์๊ณ ๊ทธ ์น๊ตฌ๊ฐ ๊ฐ์ง ์ฒด์ก๋ณต์ ๊ฐ์๊ฐ 0๊ฐ์ด๋ฉด ์์ ์ ์ท์ ํ๋ ๋น๋ ค์ค๋ค.
-
-
์ฒด์ก๋ณต์ ๊ฐ์๊ฐ 0๋ณด๋ค ํฐ ํ์์ ์๋ฅผ ํ์ธํ๋ค.
์๊ฐํ๋๋ก ์ฝ๋๋ฅผ ๊ตฌํํ๋ค. ์ฒ์์ ์ผ์ชฝ ์น๊ตฌ, ์ค๋ฅธ์ชฝ ์น๊ตฌ ๋ฒ์๋๋ฌธ์ ์๋ฌ๊ฐ ๋ช ๋ฒ ๋ฌ๋๋ฐ ๊ทธ๊ฒ๋ง ์ก์์ฃผ๋๊น ์ฑ๊ณตํ๋ค.
๋๋ ๋ฌด์์ ๋ฐฐ์ ๋
์ฐ๋ฆฌ ํ๊ต์ ํ ๊ต์๋๊ป์ ๋ ํ์๋ ๋ง์์ด ์๋ค.
"์๊ฐ ํ ์ฝ๋ฉํด๋ผ!"
์ด ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ "์๊ฐ ํ ์ฝ๋ฉ"์ ๊ฐ์กฐํ์ จ๋์ง ๊นจ๋ฌ์๋ค.
์ฐจ๊ทผ์ฐจ๊ทผ ์๊ฐํ๊ณ ์ด๋ฅผ ์ ๋ฆฌํ ๋ค์ ์ฝ๋๋ก ํํํ๋ ๊ณผ์ ์ ๊พธ์คํ ์ฐ์ตํด์ผ๊ฒ ๋ค.
'Algo Rhythm๐บ๐ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
-