[프로그래머스] 비밀지도[1차]
2020. 3. 25. 14:45ㆍ프로그래머스/카카오
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0; i<arr1.length; i++){
String s = binaryString(arr1[i],arr1.length);
String s2 = binaryString(arr2[i],arr2.length);
String result="";
for(int j=0; j<n; j++){
if(s.charAt(j)=='1' || s2.charAt(j)=='1'){
result += Character.toString('#');
}
else{
result += " ";
}
}
answer[i] = result;
}
return answer;
}
public String binaryString(int num,int destLength){
String a = "";
while(num!=1){
a = String.valueOf(num%2) + a;
num = num/2;
}
a = "1" + a;
while(a.length()!=destLength){
a= "0" + a;
}
return a;
}
}
Test Case : 1,3번 시간초과
수정코드
import java.util.*;
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0; i<arr1.length; i++){
String s = binaryString(arr1[i],arr1.length);
String s2 = binaryString(arr2[i],arr2.length);
String result="";
for(int j=0; j<n; j++){
if(s.charAt(j)=='1' || s2.charAt(j)=='1'){
result += Character.toString('#');
}
else{
result += " ";
}
}
answer[i] = result;
}
return answer;
}
public String binaryString(int num,int destLength){
String a = Integer.toBinaryString(num); // 변경부분
while(a.length()!=destLength){
a= "0" + a;
}
return a;
}
}
숫자를 이진수로 바꾸어 문자열로 리턴해주는 toBinaryString(num) 메소드로 바꾸어주니 해결되었다.
직접 구현 할 줄 아는 것이 중요하지만, 급할때는 메소드를 많이 아는 것도 중요한 것 같다.
'프로그래머스 > 카카오' 카테고리의 다른 글
[프로그래머스] [1차] 뉴스 클러스터링 (0) | 2020.04.01 |
---|---|
[프로그래머스] 크레인 인형뽑기 (0) | 2020.04.01 |
[프로그래머스] [1차] 다트게임 (0) | 2020.03.31 |
[프로그래머스] 문자열압축 (0) | 2020.03.30 |
[프로그래머스] 실패율 (0) | 2020.03.24 |