๋ฐ์ํ
https://programmers.co.kr/learn/courses/30/lessons/17681
ํ๋ฆฐ ์ฝ๋
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 |
๋๊ธ