공부, 알고리즘/LeetCode (리트코드)

[리트코드/JAVA] 1672. Richest Customer Wealth

박주단 2021. 3. 20. 07:02

leetcode.com/problems/richest-customer-wealth/

 

Richest Customer Wealth - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

# 문제설명

You are given an m x n integer grid accounts where accounts[i][j] is the amount of money the i​​​​​​​​​​​th​​​​ customer has in the j​​​​​​​​​​​th​​​​ 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 변수에 넣어줍니다.

이렇게 모든 배열을 한 번 돌면 가장 큰 수를 리턴하고 함수를 종료합니다.