본문 바로가기
  • Jetpack 알아보기

알고리즘120

[JAVA] 프로그래머스 Lv.2 : 땅따먹기 예제: land answer [[1,2,3,5],[5,6,7,8],[4,3,2,1]] 16 제한 조건: 행의 개수 N : 100,000 이하의 자연수 열의 개수는 4개이고, 땅(land)은 2차원 배열로 주어집니다. 점수 : 100 이하의 자연수 Solution #1 import java.util.Arrays; class Solution { int solution(int[][] land) { int answer = 0; for (int i = 0; i < land.length - 1; i++) { land[i + 1][0] += Math.max(Math.max(land[i][1], land[i][2]), land[i][3]); land[i + 1][1] += Math.max(Math.max(land[i].. 2021. 6. 23.
[JAVA] 프로그래머스 Lv.2 : 숫자의 표현 예제: n result 15 4 Solution #1 class Solution { public int solution(int n) { int answer = 0; int index = 1, sum = 0; while (index 2021. 6. 9.
[JAVA] 프로그래머스 Lv.2 : 최댓값과 최솟값 예제: s return "1 2 3 4" " 1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" Solution #1 class Solution { public String solution(String s) { String[] array = s.split(" "); int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for (String n : array) { int value = Integer.parseInt(n); if(min > value) min = value; if(max < value) max = value; } return min + " " + max; } } Result #1 More Algorithm! 👇👇 gi.. 2021. 6. 9.
[JAVA] 프로그래머스 Lv.2 : 피보나치 수 예제: n return 3 2 5 5 제한 조건: n은 1이상, 100000이하인 자연수입니다. Solution #1 class Solution { public int solution(int n) { int[] array = new int[n + 1]; array[0] = 0; array[1] = 1; for (int i = 2; i 2021. 6. 9.
[JAVA] 프로그래머스 Lv.2 : 최솟값 만들기 예제: A B answer [1, 4, 2] [5, 4, 4] 29 [1, 2 [3, 4] 10 제한 조건: 배열 A, B의 크기 : 1,000 이하의 자연수 배열 A, B의 원소의 크기 : 1,000 이하의 자연수 Solution #1 import java.util.Arrays; class Solution { public int solution(int[] A, int[] B) { int answer = 0; Arrays.sort(A); Arrays.sort(B); for (int i = 0; i < A.length; i++) { answer += A[i] * B[B.length - i - 1]; } return answer; } } Result #1 More Algorithm! 👇👇 github.com.. 2021. 6. 8.
[JAVA] 프로그래머스 Lv.2 : 행렬의 곱셈 예제: arr1 arr2 return [[1, 4], [3, 2], [4, 1]] [[3, 3], [3, 3]] [[15, 15], [15, 15], [15, 15]] [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] Solution #1 class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr2[0].length]; for (int i = 0; i < arr1.length; i++) { // arr1 아래로 for.. 2021. 6. 8.
[JAVA] 프로그래머스 Lv.2 : N개의 최소공배수 예제: arr result [2, 6, 8, 14] 168 [1, 2, 3] 6 Solution #1 class Solution { public int solution(int[] arr) { int answer = arr[0]; for (int i = 1; i < arr.length; i++) { int gcd = gcd(answer, arr[i]); answer = answer * arr[i] / gcd; } return answer; } private int gcd(int a, int b) { while (b != 0) { int r = a % b; a = b; b = r; } return a; } } Result #1 More Algorithm! 👇👇 github.com/ggujangi/ggu.pr.. 2021. 6. 8.
[JAVA] 프로그래머스 Lv.2 : JadenCase 문자열 만들기 예제: s return "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week" Solution #1 class Solution { public String solution(String s) { StringBuilder answer = new StringBuilder(); boolean isBlank = true; s = s.toLowerCase(); for (char c : s.toCharArray()) { if (c == ' ') { isBlank = true; answer.append(c); } else if (isBlank && (c >= 'a' && c 2021. 6. 7.
[JAVA] 프로그래머스 Lv.1 : 완주하지 못한 선수 🔥 코딩 테스트 연습 > 해시 (Hash) 예제: participant completion return ["leo", "kiki", "eden"] ["eden", "kiki"] "leo" ["marina", "josipa", "nikola", "vinko", "filipa"] ["josipa", "filipa", "marina", "nikola"] "vinko" ["mislav", "stanko", "mislav", "ana"] ["stanko", "ana", "mislav"] "mislav" Solution #1 import java.util.HashMap; import java.util.Map; class Solution { public String solution(String[] participan.. 2021. 6. 7.
[JAVA] 프로그래머스 Lv.1 : 비밀지도 🔥 2018 KAKAO BLIND RECRUITMENT 1. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 2. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. 3. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다. 4. 암호화된 배열은 지도의 각 가로줄에서 벽 부분을 1, 공백 부분을 0으로 부호화했을 때 얻어지는 이진수에 해당하는 값의 배열이다. 예제: n arr1 arr2 result 5 [9, 20, 28, 18.. 2021. 6. 3.