728x90
반응형
SMALL
프로그래머스 자바 풀이입니다.
1. 행렬의 곱셈
문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
입출력 예arr1arr2return
[[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]] |
7점
public class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int row = arr1.length;
int col = arr2[0].length;
int[][] answer = new int[row][col];
int n = arr1[0].length;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
for (int k = 0; k < n; k++) {
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
}
2. 최댓값과 최솟값
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
제한 조건
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
입출력 예sreturn
"1 2 3 4" | "1 4" |
---|---|
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
public class Solution {
public String solution(String s) {
int[] arr = Stream.of(s.split(" ")).mapToInt(Integer::parseInt).toArray();
int min = Arrays.stream(arr).min().getAsInt();
int max = Arrays.stream(arr).max().getAsInt();
return String.format("%d %d", min, max);
}
}
3. 피보나치 수
문제 설명
피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.
예를들어
- F(2) = F(0) + F(1) = 0 + 1 = 1
- F(3) = F(1) + F(2) = 1 + 1 = 2
- F(4) = F(2) + F(3) = 1 + 2 = 3
- F(5) = F(3) + F(4) = 2 + 3 = 5
와 같이 이어집니다.
2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.
제한 사항
- n은 2 이상 100,000 이하인 자연수입니다.
입출력 예nreturn
3 | 2 |
---|---|
5 | 5 |
입출력 예 설명
피보나치수는 0번째부터 0, 1, 1, 2, 3, 5, ... 와 같이 이어집니다
public class Solution {
public int solution(int n) {
BigInteger[] cache = new BigInteger[n + 1];
cache[0] = new BigInteger("0");
cache[1] = new BigInteger("1");
for (int i = 2; i < cache.length; i++) {
cache[i] = cache[i - 1].add(cache[i - 2]);
}
return cache[n].remainder(new BigInteger("1234567")).intValue();
}
}
long 형으로 풀어도 되는 것 같다.
4. 최솟값 만들기
728x90
반응형
LIST
'Algorithm > 기타' 카테고리의 다른 글
Lv2 - page 2 (0) | 2022.03.01 |
---|---|
Lv2 - page 1 (0) | 2022.02.26 |
Java kit (0) | 2022.02.23 |
프로그래머스 Lv1 3페이지 (0) | 2022.02.23 |
프로그래머스 Lv1 2페이지 (0) | 2022.02.23 |