728x90
⬛ 프로그래머스 (카카오) | LV. 1차 비밀지도 - 구현 문풀 (Java)
💚문제 접근 방식
- 우선 처음에는 10진수로 들어온 값을 2진수로 변형
- 변형된 값을 n의 자릿수로 맞춰줘야 함
- 두 arr 비교하여 둘다 0이면 공백, 하나라도 1이면 #을 붙이는 식으로 answer 세팅
문제는 중간에 2) 를 처리할 때, String.format(”%0xd”, int) 이 함수를 활용하는 과정에서 문제가 생겼다. 착각한 것인데 이 문제는 n이 매개변수로 들어오기 때문에, 각 케이스별로 다른 자릿수를 요구하고 있는데 내 마음대로 저 함수를 활용해버린 것이다.
그래서 직관적으로 len 길이를 매번 n에서 뺀 후 앞에 0을 붙여줄 값을 구해서 for문으로 이어붙이는 방식을 택했다.
💚 제출 코드
import java.util.*;
class Solution {
/*이 문제는 String.format으로 길이 맞출 수 가 없음
그럴 경우 n자릿수가 다 다른데 어떻게 처리할 거임 ? */
//솔루션 함수
public List<String> solution(int n, int[] arr1, int[] arr2) {
//정답 배열이고
List<String> answer = new ArrayList<>();
//(1) 10진수를 2진수로 변환을 시켜야 하는데
List<String> list1 = new ArrayList<>();
for(int x : arr1){
String tmp = Integer.toBinaryString(x);
if(tmp.length() != n){ //다른 경우 앞에 0을 붙여줘야 됨
String zero = "";
int len = n- tmp.length();//모자란 자릿수
for(int i=0; i<len; i++){
zero += "0";
}
//얘를 앞에 붙이기
tmp = zero + tmp;
list1.add(tmp);
System.out.println(tmp);
}else{
list1.add(tmp);
System.out.println(tmp);
}
}
List<String> list2 = new ArrayList<>();
for(int x : arr2){
String tmp = Integer.toBinaryString(x);
if(tmp.length() != n){ //다른 경우 앞에 0을 붙여줘야 됨
String zero = "";
int len = n- tmp.length();//모자란 자릿수
for(int i=0; i<len; i++){
zero += "0";
}
//얘를 앞에 붙이기
tmp = zero + tmp;
list2.add(tmp);
System.out.println(tmp);
}else{
list2.add(tmp);
System.out.println(tmp);
}
}
//(3) 정답 세팅하기
for(int i=0; i<n; i++){
String a = list1.get(i);
String b = list2.get(i);
String ans = "";
for(int j=0; j<a.length(); j++){
if(a.charAt(j) == '0' && b.charAt(j) == '0') {
ans += " ";//공백 붙이고
}else{
ans += "#"; //그 외에는 모두 # 붙임
}
}
answer.add(ans);
}
return answer;
}
}
💚 회고
한달 정도 안했더니 많이 버벅거리긴 했다. 그래도 차근 차근 풀었다 .
728x90
'코딩 테스트 [준비] > [문풀] 프로그래머스_문풀_조지기' 카테고리의 다른 글
프로그래머스 (PCCE 기출) | 10번. 데이터 분석 - 구현 문풀 (Java) (1) | 2024.07.16 |
---|---|
프로그래머스 (PCCP) | LV.1 이웃한 칸 - BFS 문풀 (Java) (1) | 2024.05.09 |
프로그래머스 (PCCP) | LV.2 석유 시추 - BFS/DFS + 구현 문풀 (Java) (56) | 2024.05.03 |
프로그래머스 | LV.1 모의고사 - 완전탐색 DFS 문풀 (Java) (58) | 2024.05.02 |
프로그래머스 (카카오) | LV.1 숫자 문자열과 영단어 - 구현 문풀 (Java) (56) | 2024.05.02 |