프로그래머스

[TIL] 9월 24일

haseung22 2024. 9. 24. 21:48

알고리즘

삼총사

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

 

프로그래머스

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

programmers.co.kr

문제설명

풀이

class Solution {
    public int solution(int[] number) {
        int answer = 0;

	//3중 for문을 돌리면서 각각 i번방 , i + 1번방, i + 2번방의 값들을
        // 더한 값이 0이 나올때만 answer의 값을 증가시켜준다.
        for(int i = 0; i < number.length; i++){
            for(int j = i+1; j < number.length; j++){
                for(int k = j+1; k < number.length; k++){
                    if(number[i]+number[j]+number[k] == 0){
                        answer++;
                    }
                }
            }
        }
        return answer;
    }
}

 

최소 직사각형

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

 

프로그래머스

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

programmers.co.kr

문제설명

풀이

class Solution {
    public int solution(int[][] sizes) {
        int minNum;

	// 각 배열들의 가로와 세로 길이를 비교하여
        // 가로길이보다 세로 길이가 길다면 가로길이와 세로길이의 방을 변경한다.
        for(int i = 0; i < sizes.length; i++){
            if(sizes[i][0] < sizes[i][1]){
                minNum = sizes[i][0];
                sizes[i][0] = sizes[i][1];
                sizes[i][1] = minNum;
            }
        }
        
        // 이후 기본 제일 처음에 있는 가로길이와 세로길이로 변수를 선언하고
        int garo = sizes[0][0];
        int sero = sizes[0][1];


	// 2중 for문을 돌면서 각 가로길이, 세로길이보다 큰게 있다면
        // 값을 재 대입시킨 후
        for(int i = 0; i < 2; i++){
            for(int j = 0; j < sizes.length; j++){
                if(garo < sizes[j][0]){
                    garo = sizes[j][0];
                }
                if(sero < sizes[j][1]){
                    sero = sizes[j][1];
                }
            }
        }
        // for문이 모두 끝난다면 가로와 세로를 곱하면서 리턴해준다.
        return garo * sero;
    }
}