본문 바로가기

Algorithm4

[프로그래머스/JAVA] LV1 - 비밀지도 / JAVA 프로그래머스 LV1 - 비밀지도 (17681) 문제 요약 비밀지도를 해독하는 문제이다. 지도는 벽과 공백으로 이루어져있는데 전체 지도는 두 지도를 합쳐서 구할 수 있다. 두 지도 중 하나라도 벽인 부분은 전체 지도에서 벽이며 둘 다 공백이어야 전체 지도에서 공백이다. 두 지도는 정수 배열로 암호화되어있으며 10진수를 2진수로 바꾸면 1이 벽, 0이 공백 부분이다. 코드 2진수 &(비트 AND)연산하면 맨 앞자리에 0이 나오는 경우 생략되므로 생략된 만큼 공백을 추가해주어야 한다. 2진수 &(비트 AND)연산 -> #, 공백으로 replace -> 앞자리 공백 추가 순서이다. class Solution { public String[] solution(int n, int[] arr1, int[] arr2) .. 2022. 4. 19.
[프로그래머스/JAVA] LV1 - 로또의 최고 순위와 최저 순위 / JAVA 프로그래머스 LV1 - 로또의 최고 순위와 최저 순위 문제 코드 class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = {0, 0}; int unknownCnt = 0; int correctCnt = 0; for(int i = 0; i < 6; i++){ if(lottos[i] == 0){ unknownCnt++; continue; } else { int currentNum = lottos[i]; for(int j = 0; j < 6; j++){ if(currentNum == win_nums[j]){ correctCnt++; break; } } } } answer[0] = 7-(correctCnt+unkno.. 2022. 4. 1.
[프로그래머스/JAVA] LV1 - 소수 만들기 / JAVA 프로그래머스 LV1 - 소수 만들기 문제 코드 isPrime 함수는 백준 골드바흐를 풀때 썼던 것과 동일 (링크에는 TIL 속 작은 골드바흐가 있다.) class Solution { static int answer = 0; static void combination(int[] arr, boolean[] visited, int start, int r) { if(r == 0) { int sum = sum(arr, visited); if(isPrime(sum)) answer++; return; } for(int i=start; i 2022. 3. 31.
[프로그래머스/JAVA] LV1 - 음양 더하기 프로그래머스 - 음양더하기 문제 레벨 1 문제라서 그런지 간단하다. if문 대신 삼항 연산자로 풀었다. 코드 class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for(int i = 0; i < absolutes.length; i++){ answer += signs[i] ? absolutes[i] : -absolutes[i]; } return answer; } } 2022. 3. 11.