일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준 2473번 세 용액 - java
- 18111번 마인크래프트 - java 구현
- replace()
- toUpperCase
- StringBuilder
- map
- 백준 1541
- 백준 2467번 용액 자바 - 이분탐색
- 백준 1647번 도시 분할 계획 - java
- 백준 1806번 부분합 java
- 프로그래머스 java
- Stack
- Java
- 코틀린기초
- 백준 14938번 서강그라운드
- 프로그래머스
- HashSet
- append
- 프로그래머스 자바
- HashMap
- 백준 1043번 거짓말 - java 분리 집합
- 최소 힙 1927
- kotlin
- mysql hy000 에러
- hash
- StringTokenizer
- ac 5430번
- dp
- 백준 3190번
- 백준 1197번 최소 스패닝 트리 - java
Archives
- Today
- Total
말하는 컴공감자의 텃밭
프로그래머스 [1차] 비밀지도 <1점> - 자바(java) 본문
728x90
두 지도를 겹쳐서 지도를 완성하는게 목표
각 지점은 2진수로 변환하면 벽과 공백으로 나타남.
겹치려면 OR 연산 이용.
고려해야할것 딱히없음.
2진수 연산 후 ### 입력시 왼쪽에서 입력해야한다는점?
append가 아니라 insert 사용.
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 | class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; int[] num = new int[n]; for (int i = 0; i < n; i++) { num[i] = arr1[i] | arr2[i]; // 2진수 OR 연산 } for (int i = 0; i < n; i++) { StringBuilder row = new StringBuilder(); for (int j = 0; j < n; j++) { if (num[i] % 2 == 1) { // 2진수는 오른쪽에서 왼쪽으로 확인하므로 insert (0, 사용 row.insert(0, "#"); // 숫자 1이면 # } else { row.insert(0, " "); // 숫자 0이면 공백. } num[i] /= 2; } answer[i] = row.toString(); } return answer; } } | cs |
728x90
'알고리즘 > Programmers - Java' 카테고리의 다른 글
프로그래머스 카드 뭉치 <1점> - 자바(java) (0) | 2023.07.10 |
---|---|
프로그래머스 귤 고르기 <2점> - 자바(java) HashMap (0) | 2023.07.06 |
프로그래머스 콜라문제 <3점> - 자바(java) (1) | 2023.07.04 |
프로그래머스 숫자의 표현 <3점> - 자바(java) (0) | 2023.07.03 |
프로그래머스 카팻 <1점> - 자바(java) Math.sqrt (0) | 2023.07.02 |
Comments