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 | 29 |
30 | 31 |
Tags
- geometry
- hash table
- java
- 구현
- Tree
- 파이썬
- Math
- 코테
- greedy
- Counting
- 자바
- two pointers
- simulation
- array
- Data Structure
- Matrix
- Stack
- implement
- dynamic programming
- database
- Binary Tree
- Binary Search
- Number Theory
- bit manipulation
- Class
- Method
- string
- SQL
- sorting
- 코딩테스트
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] [1차] 비밀지도 본문
1. Input
1) 지도의 한 변 크기 n
2) 정수 배열 arr1
3) 정수 배열 arr2
4) 지도는 한 변의 길이가 n인 정사각형 배열 형태
5) 각 칸은 "공백"(" ") 또는 "벽"("#")이다.
2. Output
1) 비밀지도의 암호를 해독한 결과를 담은 “#”과 “ ”로 이루어진 문자열 배열
2) 지도1(arr1)과 지도2(arr2)를 겹쳐 전체 지도를 완성한다. 두 지도 중 하나라도 벽인 부분은 전체 지도에서 벽이고, 두 지도 모두 공백인 부분은 전체 지도에서도 공백이다.
3) 두 지도는 정수로 암호화되어있으며, 그 암호를 이진수로 바꿨을 때 각 가로줄에서 벽 부분이 1, 공백 부분이 0이다.
3. Constraint
1) 1 ≦ n ≦ 16
2) arr1, arr2는 길이 n인 정수 배열
3) 정수 배열의 각 원소 x를 이진수로 변환했을 때의 길이는 n 이하이다. 즉, 0 ≦ x ≦ 2n - 1을 만족한다.
4. Example
Input: n=5, arr1={9,20,28,18,11}, arr2={30,1,21,17,28} -> Output: {"#####","# # #", "### #", "# ##", "#####"}
설명:
5. Code
1) 첫 코드(2022/??)
String[] answer = new String[n];
int[] n1 = new int[n];
int[] n2 = new int[n];
for(int i=0 ; i<n ; i++){
answer[i] = "";
n1 = toBin(arr1[i], n);
n2 = toBin(arr2[i], n);
for(int j=0 ; j<n ; j++){
if(n1[j]==0 && n2[j]==0) answer[i] += " ";
else answer[i] += "#";
}
}
return answer;
// 이진수배열로 바꾸기
int[] toBin(int num, int n){
int[] result = new int[n];
int i = n-1;
while(num>=1){
result[i] = num%2;
num /= 2; i--;
}
return result;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.1] 직사각형 별찍기 (0) | 2022.11.22 |
---|---|
[프로그래머스/Lv.1] 소수 만들기 (0) | 2022.11.22 |
[프로그래머스/Lv.1] k번째 수 (0) | 2022.11.22 |
[프로그래머스/Lv.1] 모의고사 (0) | 2022.11.22 |
[프로그래머스/Lv.1] 키패드 누르기 (0) | 2022.11.21 |