https://programmers.co.kr/learn/courses/30/lessons/17681
์ฝ๋ฉํ ์คํธ ์ฐ์ต - [1์ฐจ] ๋น๋ฐ์ง๋ | ํ๋ก๊ทธ๋๋จธ์ค
๋น๋ฐ์ง๋ ๋ค์ค๋ ํ์ ํ๋ก๋๊ฐ ๋น์๊ธ์ ์จ๊ฒจ๋๋ ์ฅ์๋ฅผ ์๋ ค์ค ๋น๋ฐ์ง๋๋ฅผ ์์ ๋ฃ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋น๋ฐ์ง๋๋ ์ซ์๋ก ์ํธํ๋์ด ์์ด ์์น๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ ์ํธ๋ฅผ ํด๋ ํด์ผ ํ๋ค. ๋คํํ ์ง๋ ์ํธ๋ฅผ ํด๋ ํ ๋ฐฉ๋ฒ์ ์ ์ด๋์ ๋ฉ๋ชจ๋ ํจ๊ป ๋ฐ๊ฒฌํ๋ค. ์ง๋๋ ํ ๋ณ์ ๊ธธ์ด๊ฐ n์ธ ์ ์ฌ๊ฐํ ๋ฐฐ์ด ํํ๋ก, ๊ฐ ์นธ์ ๊ณต๋ฐฑ(" ) ๋๋๋ฒฝ(#") ๋ ์ข ๋ฅ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ ์ฒด ์ง๋๋ ๋ ์ฅ์ ์ง๋๋ฅผ ๊ฒน์ณ์ ์ป์ ์ ์๋ค. ๊ฐ๊ฐ ์ง๋ 1๊ณผ ์ง๋ 2๋ผ๊ณ ํ์. ์ง๋ 1
programmers.co.kr
ํ๋ฆฐ ์ฝ๋
import java.util.Arrays;
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0; i<n; i++){
// 10์ง์ -> 2์ง์(์ ค ์ 0๋ ์ถ๋ ฅ)
String str1 = String.format("%0" + n + "d", Integer.parseInt(Integer.toBinaryString(arr1[i]).toString()));
String str2 = String.format("%0" + n + "d", Integer.parseInt(Integer.toBinaryString(arr2[i]).toString()));
String result = "";
for(int j=0; j<str1.length(); j++){
// ๋ ์ง๋ ์ค ํ๋๋ผ๋ ๋ฒฝ(1) ์ด๋ฉด ์ ์ฒด ์ง๋์์๋ ๋ฒฝ
if(str1.charAt(j) == '1' || str2.charAt(j) == '1')
result += "#";
else
result += " ";
}
answer[i] = result;
}
return answer;
}
}
ํ์ด
์ง๋์ ํ ๋ณ ํฌ๊ธฐ(n)๋งํผ ์ฃผ์ด์ง ์ ์๋ฅผ 2์ง์๋ก ๋ณํํ๋ค.
n = 5์ผ๋
9 => 01001
1 => 00001
๊ทธ ํ 2์ง์๋ก ๋ณํํ ๋ฌธ์์ด์ค, ์ด๋ ํ๋๋ผ๋ ๋ฒฝ์ด๋ฉด => "#"
๋ ๋ค 0์ผ๊ฒฝ์ฐ => " "(๊ณต๋ฐฑ)
์ผ๋ก ๋ณํํ ํ ๋ฐฐ์ด์ ๋ด์์ ๋ฆฌํดํ๋ค.
ํ ์คํธ์ผ์ด์ค์์ ํ๋ ธ๋๋ฐ ... ์ํ๋ฆฐ์ง ๋ชจ๋ฅด๊ฒ ๋ค ....
์๋ง ์ง์ ๋ณํํ๋ ๊ณผ์ ์์ ํ๋ฆฐ ๊ฒ ๊ฐ์๋ฐ...
// 10์ง์ -> 2์ง์(์ ค ์ 0๋ ์ถ๋ ฅ)
String str1 = String.format("%0" + n + "d", Integer.parseInt(Integer.toBinaryString(arr1[i]).toString()));
String str2 = String.format("%0" + n + "d", Integer.parseInt(Integer.toBinaryString(arr2[i]).toString()));
์์ ๊ฐ์ ๋ณํ๋์ ์ ์๋ฅผ 2์ง์๋ก ๋ณํํ ํ, ์ง๋์ ํฌ๊ธฐ(n)๊ณผ ๋น๊ตํ๋ฉฐ
0์ ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ํ์๋๋ ์ ๋ต ..
์ต์ข ์ฝ๋
import java.util.Arrays;
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0; i<n; i++){
// 10์ง์ -> 2์ง์
String str1 = Integer.toBinaryString(arr1[i]);
String str2 = Integer.toBinaryString(arr2[i]);
// ๋ฌธ์์ด ๊ธธ์ด(์์ 0 ๋ถ์ผ๋ ์ฌ์ฉํ ๋ณ์)
int str1Len = str1.length();
int str2Len = str2.length();
String result = "";
/*
* ์ ์๋ฅผ 2์ง์๋ก ๋ณํํ์๋, ์์ 0์ ๋ถ์ฌ์ผ ํ๋ ๊ฒฝ์ฐ
* ex) arr1[i] = 9 -> 01001 ์ด ๋์ด์ผํจ.
* n = 5, str1Len = 4(str1 = 1001)
* ๋ฐ๋ผ์ (n - str1Len) ๋งํผ "0"์ ์ถ๊ฐ.
*/
if(str1.length() < n)
for(int j=0; j<n-str1Len; j++)
str1 = "0" + str1;
if(str2.length() < n)
for(int j=0; j<n-str2Len; j++)
str2 = "0" + str2;
for(int j=0; j<str1.length(); j++){
// ๋ ์ง๋ ์ค ํ๋๋ผ๋ ๋ฒฝ(1) ์ด๋ฉด ์ ์ฒด ์ง๋์์๋ ๋ฒฝ
if(str1.charAt(j) == '1' || str2.charAt(j) == '1')
result += "#";
else
result += " ";
}
answer[i] = result;
}
return answer;
}
}
์ฒซ ๋ฒ์งธ ์ฝ๋๋ ๋ญ๊ฐ ํ๋ฆฐ์ง ๊ณ์๋ดค๋๋ฐ ๋ชป์ฐพ์๋ค . . .
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Codeforces] 977A: Wrong Subtraction (0) | 2020.02.11 |
---|---|
[๋ฐฑ์ค] 6603๋ฒ: ๋ก๋(dfs, ๋ฐฑํธ๋ํน) (0) | 2020.02.10 |
[๋ฐฑ์ค] 3986๋ฒ: ์ข์ ๋จ์ด(๋ฌธ์์ด, ์คํ) (0) | 2020.02.09 |
[๋ฐฑ์ค] 2012๋ฒ: ๋ฑ์ ๋งค๊ธฐ๊ธฐ(๊ทธ๋ฆฌ๋) (0) | 2020.02.08 |
[๋ฐฑ์ค] 3040๋ฒ: ๋ฐฑ์ค ๊ณต์ฃผ์ ์ผ๊ณฑ ๋์์ด (0) | 2020.02.07 |
๋๊ธ