๐๋น๋ฐ์ง๋ ์๋ฌธ ๋ณด๊ธฐ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - [1์ฐจ] ๋น๋ฐ์ง๋
๋น๋ฐ์ง๋ ๋ค์ค๋ ํ์ ํ๋ก๋๊ฐ ๋น์๊ธ์ ์จ๊ฒจ๋๋ ์ฅ์๋ฅผ ์๋ ค์ค ๋น๋ฐ์ง๋๋ฅผ ์์ ๋ฃ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋น๋ฐ์ง๋๋ ์ซ์๋ก ์ํธํ๋์ด ์์ด ์์น๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ ์ํธ๋ฅผ ํด๋ ํด์ผ ํ๋ค. ๋ค
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช
๋น๋ฐ์ง๋
๋ค์ค๋ ํ์ ํ๋ก๋๊ฐ ๋น์๊ธ์ ์จ๊ฒจ๋๋ ์ฅ์๋ฅผ ์๋ ค์ค ๋น๋ฐ์ง๋๋ฅผ ์์ ๋ฃ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋น๋ฐ์ง๋๋ ์ซ์๋ก ์ํธํ๋์ด ์์ด ์์น๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ ์ํธ๋ฅผ ํด๋ ํด์ผ ํ๋ค. ๋คํํ ์ง๋ ์ํธ๋ฅผ ํด๋ ํ ๋ฐฉ๋ฒ์ ์ ์ด๋์ ๋ฉ๋ชจ๋ ํจ๊ป ๋ฐ๊ฒฌํ๋ค.
- ์ง๋๋ ํ ๋ณ์ ๊ธธ์ด๊ฐ n์ธ ์ ์ฌ๊ฐํ ๋ฐฐ์ด ํํ๋ก, ๊ฐ ์นธ์ "๊ณต๋ฐฑ"(" ") ๋๋ "๋ฒฝ"("#") ๋ ์ข ๋ฅ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ์ ์ฒด ์ง๋๋ ๋ ์ฅ์ ์ง๋๋ฅผ ๊ฒน์ณ์ ์ป์ ์ ์๋ค. ๊ฐ๊ฐ "์ง๋ 1"๊ณผ "์ง๋ 2"๋ผ๊ณ ํ์. ์ง๋ 1 ๋๋ ์ง๋ 2 ์ค ์ด๋ ํ๋๋ผ๋ ๋ฒฝ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์๋ ๋ฒฝ์ด๋ค. ์ง๋ 1๊ณผ ์ง๋ 2์์ ๋ชจ๋ ๊ณต๋ฐฑ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์๋ ๊ณต๋ฐฑ์ด๋ค.
- "์ง๋ 1"๊ณผ "์ง๋ 2"๋ ๊ฐ๊ฐ ์ ์ ๋ฐฐ์ด๋ก ์ํธํ๋์ด ์๋ค.
- ์ํธํ๋ ๋ฐฐ์ด์ ์ง๋์ ๊ฐ ๊ฐ๋ก์ค์์ ๋ฒฝ ๋ถ๋ถ์ 1, ๊ณต๋ฐฑ ๋ถ๋ถ์ 0์ผ๋ก ๋ถํธํํ์ ๋ ์ป์ด์ง๋ ์ด์ง์์ ํด๋นํ๋ ๊ฐ์ ๋ฐฐ์ด์ด๋ค.
๋ค์ค๊ฐ ํ๋ก๋์ ๋น์๊ธ์ ์์ ๋ฃ์ ์ ์๋๋ก, ๋น๋ฐ์ง๋์ ์ํธ๋ฅผ ํด๋ ํ๋ ์์ ์ ๋์์ค ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
๐ฅ ์ ๋ ฅ ํ์
- ์
๋ ฅ์ผ๋ก ์ง๋์ ํ ๋ณ ํฌ๊ธฐ n ๊ณผ 2๊ฐ์ ์ ์ ๋ฐฐ์ด arr1, arr2๊ฐ ๋ค์ด์จ๋ค.
- 1 โฆ n โฆ 16
- arr1, arr2๋ ๊ธธ์ด n์ธ ์ ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋ค.
- ์ ์ ๋ฐฐ์ด์ ๊ฐ ์์ x๋ฅผ ์ด์ง์๋ก ๋ณํํ์ ๋์ ๊ธธ์ด๋ n ์ดํ์ด๋ค. ์ฆ, 0 โฆ x โฆ 2n - 1์ ๋ง์กฑํ๋ค.
๐ฅ ์ถ๋ ฅ ํ์
- ์๋์ ๋น๋ฐ์ง๋๋ฅผ ํด๋ ํ์ฌ '#', ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ์ถ๋ ฅํ๋ผ.
๐ ์ ์ถ๋ ฅ ์
๋งค๊ฐ๋ณ์ | ๊ฐ |
n | 5 |
arr1 | [9, 20, 28, 18, 11] |
arr2 | [30, 1, 21, 17, 28] |
์ถ๋ ฅ | ["#####","# # #", "### #", "# ##", "#####"] |
๋งค๊ฐ๋ณ์ | ๊ฐ |
n | 6 |
arr1 | [46, 33, 33 ,22, 31, 50] |
arr2 | [27 ,56, 19, 14, 14, 10] |
์ถ๋ ฅ | ["######", "### #", "## ##", " #### ", " #####", "### # "] |
๐คจ ๊ณ ๋ฏผ
- ์ซ์ํ ๋ฐ์ดํฐ์ 2์ง์ or ์ฐ์ฐ์ ํ๋ ๋ฐฉ๋ฒ.
- ํ๋ณ์ ๊ธธ์ด๊ฐ ์ฃผ์ด์ก์ ๋ ๊ณต๋ฐฑ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ ๊ฒ์ธ์ง.
- ๋ฌธ์ ์ถ๋ ฅ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ด๋ค ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ฉ ํ ๊ฒ์ธ์ง.
- ๋ฌธ์ํ๋ํ๋ ์ง์ ์ฒ๋ฆฌ ํ ๊ฒ์ธ์ง replace ํจ์๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง.
๐ป ์ฝ๋ฉ
1์ฐจ ์ ์ถ.
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
// ํ๋ณ์ ๊ธธ์ด n ๋งํผ ๋ต์์ง์ ๊ธธ์ด ์ด๊ธฐํ
String[] answer = new String[n];
// ํ๋ณ์ ๊ธธ์ด n ๋งํผ ๋๋ for๋ฌธ
for (int i = 0; i < n; ++i) {
// ๋ฌธ์ ์ฒ๋ฆฌํ StringBuffer ๊ฐ์ฒด ์์ฑ
StringBuffer sb = new StringBuffer();
// ๊ฐ arr1,arr2์ i๋ฒ์งธ์ ์ซ์ ๋ฐ์ดํฐ๋ฅผ Binary |(or) ์ฐ์ฐ์ ํ์ฌ answer์ i๋ฒ์งธ์ ๋์
ํ๋ค.
answer[i] = Integer.toBinaryString(arr1[i] | arr2[i]);
// ๋ง์ฝ์ ํ๋ณ์ ๊ธธ์ด๊ฐ 6์ธ๋ฐ, Binary์ ๊ธธ์ด๊ฐ 5์ธ ๊ฒฝ์ฐ๋ ์์์ผ๋ก ๊ณต๋ฐฑ์ฒ๋ฆฌ
for (int k = 0; k < n-answer[i].length(); ++k) {
sb.append(" ");
}
// answer[i]์ ๊ธธ์ด๋งํผ ๋๋ฉฐ ๋ต์์ง์ ์ธํ
ํ 1-> #, 0-> " " ์ธํ
์ ์ํ for
for (int j = 0; j < answer[i].length(); ++j){
if('1' == answer[i].charAt(j)) sb.append("#");
else sb.append(" ");
}
// ๋ต์์ง์ ์ฒ๋ฆฌ ์๋ฃํ sb ๋ฐ์ดํฐ๋ฅผ ๋์
ํ๋ค.
answer[i] = sb.toString();
}
// ์ฒ๋ฆฌ ์๋ฃ ํ ์ ๋ฌ๋๋ ๋ต์์ง
return answer;
}
}
๐ ์ฑ์
โฑ ์์์๊ฐ ๋ฐ ํ๊ธฐ
์ฝ 1์๊ฐ 30๋ถ.
๋ฐ์ด๋๋ฆฌ ์ฐ์ฐ์ ์์ด์ ์ ํ ํ์ต์ด ํ์ํ๊ณ , ๊ณต๋ฐฑ์ฒ๋ฆฌ๋ ๋ฌธ์ ๋ค๋ฃจ๋ ๋ฌธ์ ์๋ค.
ํ๊ธฐ ์ ์๋ ๊ทธ๋ ๊ฒ ์ด๋ ค์ ๋ณด์๋ ๋ฌธ์ ์ธ๋ฐ ํ๊ณ ๋๋ ์ด๋ ต๋ค.
N์ง ์ฐ์ฐ ํ๋ ๋ถ๋ถ์ ๋ฐ๋ก ๊ณต๋ถ๋ฅผ ํด๋ฌ์ผ ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค.