알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

https://school.programmers.co.kr/learn/courses/30/lessons/86491

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


Think🤔
package egovframework.example.sample.service;

public class SampleVO2 extends SampleDefaultVO {
	public static void main(String[] args) {
		int[][] sizes = {{14, 4}, {19, 6}, {6, 16}, {18, 7}, {7,11}};
		int answer = 0;
		int num1 = sizes[0][0];
		int num2 = sizes[0][1];
		System.out.println(sizes.length);
		for(int i=0; i<sizes.length-1; i++){
			System.out.println("sizes[i][0] : " + sizes[i][0] + " i 값 : " + i);
			System.out.println("sizes[i][1] : " + sizes[i][1] + " i 값 : " + i);
			if(sizes[i][0] < sizes[i][1]){
				int tmp = 0;
				tmp = sizes[i][0];
				sizes[i][0] = sizes[0][i];
				sizes[0][i] = tmp;
			}
			if(sizes[i][0] > num1){
				num1 = sizes[i][0];
			}
		}
		
		answer = num1 * num2;
		System.out.println(answer);
	}
}

out of index가 계속해서 발생... 흠

 

class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        int num1 = 0;
        int num2 = 0;
        
        // 높이와 크기 중에 큰거를 뽑아서 더 하면됨.
        // 접근을 이상하게함...
        for(int i=0; i<sizes.length; i++){
            int tmpv = (sizes[i][0] >= sizes[i][1]) ? sizes[i][0] : sizes[i][1];
            int tmph = (sizes[i][0] <= sizes[i][1]) ? sizes[i][0] : sizes[i][1];
            num1 = Math.max(tmpv,num1);
            num2 = Math.max(tmph,num2);
        }
        
        answer = num1 * num2;
        
        return answer;
    }
}

Solution✍
class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        int num1 = 0;
        int num2 = 0;
        
        // 높이와 크기 중에 큰거를 뽑아서 더 하면됨.
        // 접근을 이상하게함...
        for(int i=0; i<sizes.length; i++){
            int tmpv = (sizes[i][0] >= sizes[i][1]) ? sizes[i][0] : sizes[i][1];
            int tmph = (sizes[i][0] <= sizes[i][1]) ? sizes[i][0] : sizes[i][1];
            num1 = Math.max(tmpv,num1);
            num2 = Math.max(tmph,num2);
        }
        
        answer = num1 * num2;
        
        return answer;
    }
}

Review🤩

각 위치에 맞는 부분을 구해야하므로 반복문 안에서 각 지갑의 크기와 넓이가 필요


 

+ Recent posts