https://programmers.co.kr/learn/courses/30/lessons/17681
[풀이]
Java의 Integer.toBinaryString 메소드를 이용하면 2진수로 바꾸는 메소드를 만들 필요가 없다. 하지만, 미처 생각하지 못한 부분이 있었는데 첫번재 테스트 케이스의 1이 2진수가 되면 00001 이어야 하는데 메소드를 사용하면 1로 출력이된다. 문제를 풀 때 이것을 빠르게 알아차리지 못해서 꽤 헤맸다. 그래서 이 부분도 변환할 때 추가해서 작성을 하니 풀어...어라..? 안된다.. 테스트 케이스를 복사해서 인텔리제이에서 돌렸는데 테스트 케이스가 계속 오류가 났다.. 알고보니,
위의 사진처럼, 3번째 인덱스의 값이 "# ##"이어야 하는데 공백이 1개밖에 없다.... 좀.. 허무했지만, 어쨌든 코드를 프로그래머스에서 돌려보니 정상적으로 잘 작동이 되었다!!ㅎㅎ
[코드]
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i = 0; i< n; i++){
String s1 = change(arr1[i],n);
String s2 = change(arr2[i],n);
String temp_string = "";
for(int j = 0; j< n; j++) {
if(s1.charAt(j) == '1' || s2.charAt(j) == '1'){
temp_string += "#";
}else{
temp_string += " ";
}
}
answer[i] = temp_string;
}
return answer;
}
public String change(int num, int len){
String temp = Integer.toBinaryString(num);
while(temp.length() != len){
temp = "0" + temp;
}
return temp;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 예산(Java) (0) | 2021.07.10 |
---|---|
프로그래머스 : 약수의 개수와 덧셈(Java) (0) | 2021.07.10 |
프로그래머스 : 다트 게임(Java) (0) | 2021.07.09 |
프로그래머스 : 영어 끝말잇기(Java) (0) | 2021.07.09 |
프로그래머스 : 게임 맵 최단거리(Java) (0) | 2021.07.08 |