일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- flask
- real time web
- oauth
- JPA
- server send event
- Java
- Spring Security
- javascript
- web
- html
- jenkins
- Project
- google oauth
- spring
- jQuery
- 항해99
- JWT
- WIL
- cookie
- session
- hanghae99
- bean
- python
- 생명주기 콜백
- Anolog
- programmers
- SseEmitter
- Hibernate
- Stream
- DI
Archives
- Today
- Total
끄적끄적 코딩일지
[Programmers][1차] 비밀지도(난이도:★★★★★★) 본문
https://programmers.co.kr/learn/courses/30/lessons/17681
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
return solutionA(n,arr1,arr2);
}
public String[] solutionA(int n, int[] arr1, int[] arr2){
int num = getMulti(n);
String[] answer = new String[n];
for(int i = 0 ; i < n; i++){
char[] a1 = toBinaryMap(n,num,arr1[i]).toCharArray();
char[] a2 = toBinaryMap(n,num,arr2[i]).toCharArray();
String ans = "";
// ascii코드 35(#) 을 비교해서 둘중 하나라도 #이면 #을 붙이고 아니면 ' '을 붙인다.
for(int j = 0; j < a1.length; j++){
if(a1[j] == 35 || a2[j] == 35)
ans += '#';
else
ans += ' ';
}
answer[i] = ans;
}
return answer;
}
// 2진수 변환
// 변환 값이 0이면 빈칸을, 1이면 #을 붙여 변환된 형태로 반환한다.
public String toBinaryMap(int n,int size,int num){
String ans = "";
int sub = size;
for(int i = 0; i < n; i ++){
int tmp = num / sub;
ans = ans + (tmp == 0?" ":"#");
num %= sub;
sub /= 2;
}
return ans;
}
public int getMulti(int n){
int res = 1;
for(int i = 0; i < n-1; i ++)
res *= 2;
return res;
}
}
'알고리즘' 카테고리의 다른 글
[Programmers][1차] 다트게임(난이도:★★★★★★) (0) | 2022.05.17 |
---|---|
[Programmers]키페드 누르기(난이도:★★★★★★) (0) | 2022.05.17 |
[Programmers]폰켓몬(난이도:★★★★★) (0) | 2022.05.17 |
[Programmers]체육복(난이도:★★★★★) (0) | 2022.05.17 |
[Programmers]실패율(난이도:★★★★★) (0) | 2022.05.17 |