Red Glitter Pointer

 

 

프로그래머스

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

programmers.co.kr

 

 

 

👇 정답 코드

SELECT a.author_id AS AUTHOR_ID
		, a.author_name AS AUTHOR_NAME
        , b.category AS CATEGORY
        , SUM(b.price * s.sales) AS TOTAL_SALES
FROM author AS a
    LEFT JOIN book AS b ON b.author_id = a.author_id
    LEFT JOIN book_sales AS s ON s.book_id = b.book_id
WHERE s.sales_date LIKE '2022-01%'
GROUP BY AUTHOR_ID, CATEGORY
ORDER BY author_id ASC, category DESC

 

느낀 점 및 정리 ✍️

1. author, book, book_sales 테이블을 다함께 JOIN 시켜준 뒤 날짜가 2022-01인 경우만 추출했다

2. author_id와 category를 그룹화 시켜주었다.

3. WHERE 절에 작성한 내용은 WHERE YEAR(s.sales_date) = 2022 AND MONTH(s.sales_date) = 1 이라고 작성해도 된다.

 

 

 

 

프로그래머스

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

programmers.co.kr

 

 

import java.util.Stack;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        Stack<Integer> stack = new Stack<>();
        for(int i = 0; i < moves.length; i++) {
            for(int j = 0; j < board.length; j++) {
                if(board[j][moves[i] - 1] > 0) { // 인형이 있을 경우에 뽑기 진행
                	// 스택에 인형이 있고, 현재 뽑은 인형이랑 동일할 경우 터트리기
                    // 아니라면 스택에 인형 넣기
                    if(!stack.isEmpty() && board[j][moves[i] - 1] == stack.peek()) {
                        answer += 2;
                        stack.pop();
                    } else {
                        stack.add(board[j][moves[i] - 1]);
                    }
                    // 인형을 뽑은 자리에 0으로 초기화
                    board[j][moves[i] - 1] = 0;
                    break;
                }
            }
        }
        return answer;
    }
}

 

느낀 점 및 정리 ✍️

1. 스택을 사용하여 뽑은 인형들을 스택에 넣고, 인형을 뽑을 때마다 스택의 가장 최상단의 인형과 일치하는지 확인, 일치한다면 인형 터트리기(answer += 2), stack.pop()

2. 아니라면 스택에 인형 넣는다

3. moves[i] - 1 을 한 이유는, 배열의 인덱스는 0부터 시작인데 크레인의 입력 값은 1부터 시작이기 때문에 크레인의 값에서 -1을 해주어야 인덱스가 맞는다

 

 

 

 

프로그래머스

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

programmers.co.kr

 

 

 

 

내가 푼 코드👇

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPER_INFOS
WHERE (SKILL_1 = 'Python') OR (SKILL_2 = 'Python') OR (SKILL_3 = 'Python')
ORDER BY ID

 

 

 

느낀점 및 정리 ✍️

1. 오름차순 정리라서 굳이 ASC 작성 안했다

2. 괄호 없어도 되는데 편하게 보기 위해 넣었다 ! 

 

 

+ Recent posts

loading