일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 향상된for문
- Join
- 상속
- ifelse
- SQL
- 칼럼명에 별칭 지정
- executeUpdate
- for문
- 제어문
- 이터레이블
- 객체
- 프로그래머스
- HAVING
- 자바
- 생성자
- sql오류
- 카카오인턴십
- Java
- .substring
- 작성순서
- 삼항연산자
- 오라클
- .repeat
- 연산자
- getter
- int오류
- setter
- 겟터
- SELECT 절
- 생성자쓰는이유
- Today
- Total
CoDream
[JAVA] 프로그래머스 > 코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > [1차] 비밀지도 (OR 비트연산자) 본문
[JAVA] 프로그래머스 > 코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > [1차] 비밀지도 (OR 비트연산자)
코잠 2024. 3. 17. 09:37https://school.programmers.co.kr/learn/courses/30/lessons/17681
if문으로 작성하다가 막혀서 해설을 확인함.
해설에 적혀있는 비트연산자를 보게되었고, 비트연산자에 대해 살펴보았다.
비트연산자
- 비트 AND 연산자 (&):
- 두 비트가 모두 1이면 결과는 1이고, 그렇지 않으면 0입니다.
- 비트 OR 연산자 (|):
- 두 비트 중 하나 이상이 1이면 결과는 1이고, 둘 다 0이면 결과는 0입니다.
- 비트 XOR(배타적 논리합) 연산자 (^):
- 두 비트가 서로 다르면 결과는 1이고, 같으면 결과는 0입니다.
- 비트 부정 연산자 (~):
- 비트를 반전시킵니다. 1은 0으로, 0은 1로 변환됩니다.
- 왼쪽 시프트 연산자 (<<):
- 지정된 수 만큼 비트를 왼쪽으로 이동시킵니다. 오른쪽에 새로 생성된 비트는 0으로 채워집니다.
- 오른쪽 시프트 연산자 (>>):
- 지정된 수 만큼 비트를 오른쪽으로 이동시킵니다. 왼쪽에 새로 생성된 비트는 원래 값과 동일한 부호로 채워집니다.
- 부호 없는 오른쪽 시프트 연산자 (>>>):
- 지정된 수 만큼 비트를 오른쪽으로 이동시킵니다. 왼쪽에 새로 생성된 비트는 항상 0으로 채워집니다.
필요한 연잔자는 비트 OR 연산자 (|) 였고, OR연산자 사용방법에 대해 알아보았다.
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0;i<n;i++){
int result=arr1[i]|arr2[i];
String binaryString = Integer.toBinaryString(result);
binaryString = String.format("%" + n + "s", binaryString).replace(" ", "0");
binaryString = binaryString.replace('1', '#').replace('0', ' ');
answer[i] = binaryString;
}
return answer;
}
}
OR 연산자 (|)
int result=arr1[i]|arr2[i];
> OR연산자를 이용해 배열 arr1과 arr2에 있는 숫자(2진수)를 비교해 두 비트 중 하나라도 1이면 결과는 1로, 둘 다 0이면 결과는 0이 나오게 됨.
Integer.toBinaryString
> 주어진 정수를 이진수 문자열로 변환
String binaryString = Integer.toBinaryString(result);
> result 수를 이진수 String으로 변환함.
String.format
문자열을 지정된 형식으로 포맷팅하는 메서드
.replace
문자열에서 특정 문자나 문자열을 다른 문자나 문자열로 대체
binaryString = String.format("%" + n + "s", binaryString).replace(" ", "0");
> 문자열의 길이를 n으로 맞추기위해
이진수 문자열의 길이가 n보다 작으면, 남는 공간을 공백으로 채움.
남은 공백을 0으로 대체하여 이진수 문자열의 길이를 n으로 맞춤.
binaryString = binaryString.replace('1', '#').replace('0', ' ');
> 이진수 문자열에서 1을 '#'으로, 0을 공백으로 대체함.
'JAVA > JAVA 예제' 카테고리의 다른 글
[JAVA] 프로그래머스 > 코딩테스트 연습 > 연습문제 > 짝수와 홀수 (삼항연산자) (0) | 2024.03.17 |
---|---|
[JAVA] 프로그래머스 > 코딩테스트 연습 > 위클리 챌린지 > 부족한 금액 계산하기 (int 오버플로우) (0) | 2024.03.17 |
[JAVA] 프로그래머스 > 코딩테스트 연습 > 코딩테스트 입문 > 배열 두 배 만들기 120809 (0) | 2024.03.16 |
[JAVA] 프로그래머스 > 프로그래머스 > 코딩테스트 연습 > 연습문제 > 가운데 글자 가져오기 (0) | 2024.03.16 |
[JAVA] 프로그래머스 > 코딩테스트 연습 > 연습문제 > 수박수박수박수박수박수? (0) | 2024.03.16 |