Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 이코테
- Algorithm
- sw expert academy
- 테코테코
- createSlice
- Get
- redux-toolkit
- redux
- 코딩테스트합격자되기
- 매일메일
- Python
- java
- programmers
- JavaScript
- json-server
- 리액트
- axios
- maeil-mail
- react-redux
- useDispatch
- 자바
- react-router
- 항해99
- redux-saga
- react
- 알고리즘
- 항해플러스
- SW
- C++
- 프로그래머스
Archives
- Today
- Total
Binary Journey
[프로그래머스] 비밀지도 본문
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
** Javascript
비트연산자를 이용했다.
그리고 padStart 를 이용하여 출력되지 않은 0들을 채워주었다.
function solution(n, arr1, arr2) {
let answer = [];
for (let i = 0; i < n; i++) {
answer.push((arr1[i]|arr2[i]).toString(2).padStart(n, '0').replace(/[1]/g, "#").replace(/[0]/g, " "));
}
return answer;
}
** Java
Java에는 따로 padStart 가 없어서 구글링하여 찾아보았다.
여러 추천 방법들이 있었는데 String.format 을 쓰는 게 가장 나을 듯하다.
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for (int i = 0; i < n; i++) {
answer[i] = String.format("%" + n + "s", Integer.toBinaryString(arr1[i] | arr2[i])).replaceAll("1", "#").replaceAll("0", " ");
}
return answer;
}
}
참고: https://www.baeldung.com/java-pad-string
** Python
def solution(n, arr1, arr2):
answer = [""] * n
for i in range(n):
# answer[i] = str(bin(arr1[i]|arr2[i]))[2:].rjust(n,'0').replace('1','#').replace('0',' ')
answer[i] = str(bin(arr1[i]|arr2[i]))[2:].zfill(n).replace('1','#').replace('0',' ')
return answer
숫자의 경우 앞에 0을 채워줘야 하는 경우가 생기는 데 python 의 경우 rjust 와 zfill 을 사용할 수 있다.
rjust 는 채우고 싶은 string 을 원하는 대로 지정할 수 있고
zfill 은 말 그대로 fill zero여서 총 글자 수만 지정해주면 된다.
참고: https://kkamikoon.tistory.com/136
반응형