[리트코드/JAVA] 1672. Richest Customer Wealth
leetcode.com/problems/richest-customer-wealth/
# 문제설명
You are given an m x n integer grid accounts where accounts[i][j] is the amount of money the ith customer has in the jth bank. Return the wealth that the richest customer has.
A customer's wealth is the amount of money they have in all their bank accounts. The richest customer is the customer that has the maximum wealth.
정수형 m x n 으로 만들어진 배열 accounts(계좌)가 있습니다.
accounts[i][j]는 [i]번째 고객이 [j]번째 은행에 가지고 있는 돈입니다.
이 중 가장 부자인 고객의 재산을 리턴하세요.
재산은 고객들이 모든 은행계좌에 있는 돈을 나타내고, 가장 부자인 고객은 가장 많은 재산을 갖고있는 고객입니다.
# 조건
- m == accounts.length
- n == accounts[i].length
- 1 <= m, n <= 50
- 1 <= accounts[i][j] <= 100
# 입출력 예
Example 1:
Input: accounts = [[1,2,3],[3,2,1]]
Output: 6
Explanation:
1st customer has wealth = 1 + 2 + 3 = 6
2nd customer has wealth = 3 + 2 + 1 = 6
Both customers are considered the richest with a wealth of 6 each, so return 6.
Example 2:
Input: accounts = [[1,5],[7,3],[3,5]]
Output: 10
Explanation:
1st customer has wealth = 6
2nd customer has wealth = 10
3rd customer has wealth = 8
The 2nd customer is the richest with a wealth of 10.
Example 3:
Input: accounts = [[2,8,7],[7,1,3],[1,9,5]]
Output: 17
# 풀이
class Solution {
public int maximumWealth(int[][] accounts) {
int m = accounts.length;
int n = accounts[0].length;
int output = 0;
for(int i=0; i<m; i++) {
int tmp = 0;
for(int j=0; j<n; j++)
tmp += accounts[i][j];
output = Math.max(output, tmp);
}
return output;
}
}
# 3~5
전체 배열의 길이(m) 각 배열의 길이(n)를 구합니다.
그리고 가장 부자인 고객의 자산을 담아서 리턴할 변수 output을 선언합니다.
# 7, 8
for문을 선언하고 범위는 전체 배열의 길이 만큼 줍니다.
그리고 임시변수(tmp)를 선언합니다. 이 변수에 배열의 합을 넣어 줄 예정입니다.
# 10
이중 for문을 사용합니다. 큰 배열 안에 여러개의 배열(계좌)가 있기 때문입니다.
# 11
각 계좌의 총 합을 tmp에 넣어둡니다.
# 13
Math.max() 메소드를 활용해서 더 큰 수를 output 변수에 넣어줍니다.
이렇게 모든 배열을 한 번 돌면 가장 큰 수를 리턴하고 함수를 종료합니다.